diff --git a/examples/cactus-carbon-accounting-backend/cache/solidity-files-cache.json b/examples/cactus-carbon-accounting-backend/cache/solidity-files-cache.json new file mode 100644 index 00000000000..3aeb3cf1999 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/cache/solidity-files-cache.json @@ -0,0 +1,696 @@ +{ + "_format": "hh-sol-cache-2", + "files": { + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol": { + "lastModificationDate": 1618592012775, + "contentHash": "5ffdf28e08dd05660db7ce6c776dcb5e", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.7.0" + ], + "artifacts": [ + "DAOToken" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Governor.sol": { + "lastModificationDate": 1618592012775, + "contentHash": "d7520e293b24832eb6f4ba7c579f1592", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.7.0" + ], + "artifacts": [ + "Dclm8Interface", + "Governor", + "TimelockInterface" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol": { + "lastModificationDate": 1618592012775, + "contentHash": "37b06f65981bee4b4be69d87d0bc1a1b", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/math/SafeMath.sol" + ], + "versionPragmas": [ + "^0.7.0" + ], + "artifacts": [ + "Timelock" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts/math/SafeMath.sol": { + "lastModificationDate": 1618592053383, + "contentHash": "4d29a22b28b7ec0e89c3cdf1c5e72b83", + "sourceName": "@openzeppelin/contracts/math/SafeMath.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "SafeMath" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol": { + "lastModificationDate": 1618592012775, + "contentHash": "a917c6f74416b0f60d295386128a3a0c", + "sourceName": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol" + ], + "versionPragmas": [ + "^0.7.0" + ], + "artifacts": [ + "NetEmissionsTokenNetwork" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol": { + "lastModificationDate": 1618592054207, + "contentHash": "33cad0216fea16ce4baadc5603b84218", + "sourceName": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "SafeMathUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "lastModificationDate": 1618592051903, + "contentHash": "93f85b95169bc2845edf664305aeb33b", + "sourceName": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../utils/EnumerableSetUpgradeable.sol", + "../utils/AddressUpgradeable.sol", + "../utils/ContextUpgradeable.sol", + "../proxy/Initializable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "AccessControlUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol": { + "lastModificationDate": 1618592052415, + "contentHash": "56f03d1ab28143f8dff51cc763ea2ca8", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC1155Upgradeable.sol", + "./IERC1155MetadataURIUpgradeable.sol", + "./IERC1155ReceiverUpgradeable.sol", + "../../utils/ContextUpgradeable.sol", + "../../introspection/ERC165Upgradeable.sol", + "../../math/SafeMathUpgradeable.sol", + "../../utils/AddressUpgradeable.sol", + "../../proxy/Initializable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "ERC1155Upgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol": { + "lastModificationDate": 1618592052115, + "contentHash": "8cba95f8a22b2fb5aad5aa6cede94288", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../math/SafeMathUpgradeable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "CountersUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol": { + "lastModificationDate": 1618592053587, + "contentHash": "71b3ac8d4da61bb6c6708c12f56e3c1f", + "sourceName": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../utils/AddressUpgradeable.sol" + ], + "versionPragmas": [ + ">=0.4.24 <0.8.0" + ], + "artifacts": [ + "Initializable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol": { + "lastModificationDate": 1618592052275, + "contentHash": "b927cbeb303f88e9f6b38fdc71a5d381", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "EnumerableSetUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "lastModificationDate": 1618592051931, + "contentHash": "aa72beb3bf14f8394b4a8a292d66589c", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.6.2 <0.8.0" + ], + "artifacts": [ + "AddressUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "lastModificationDate": 1618592052111, + "contentHash": "9f901c17a18eadc08042b6a510da3b7d", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../proxy/Initializable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "ContextUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol": { + "lastModificationDate": 1618592053183, + "contentHash": "c6a7d22d689cb2a9f3571a879b444cc3", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../../introspection/IERC165Upgradeable.sol" + ], + "versionPragmas": [ + ">=0.6.2 <0.8.0" + ], + "artifacts": [ + "IERC1155Upgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol": { + "lastModificationDate": 1618592053139, + "contentHash": "beb762f1d5aed52c6044c40075b6d179", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC1155Upgradeable.sol" + ], + "versionPragmas": [ + ">=0.6.2 <0.8.0" + ], + "artifacts": [ + "IERC1155MetadataURIUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol": { + "lastModificationDate": 1618592053151, + "contentHash": "8beb84d08fa29b37f952d51a2d81dde5", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../../introspection/IERC165Upgradeable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "IERC1155ReceiverUpgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol": { + "lastModificationDate": 1618592052483, + "contentHash": "2fe109cd8f5cb2cc237b5e6a7e99edd7", + "sourceName": "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC165Upgradeable.sol", + "../proxy/Initializable.sol" + ], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "ERC165Upgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/node_modules/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol": { + "lastModificationDate": 1618592053191, + "contentHash": "1e80a066fb319fc9752e62673a0e9450", + "sourceName": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.6.0 <0.8.0" + ], + "artifacts": [ + "IERC165Upgradeable" + ] + }, + "/home/peter/a/blockchain/cactus/examples/carbon-accounting/pkg/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol": { + "lastModificationDate": 1618592012775, + "contentHash": "5405c71eebad99848b73c8f045d62bbd", + "sourceName": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol", + "solcConfig": { + "version": "0.7.3", + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol" + ], + "versionPragmas": [ + "^0.7.0" + ], + "artifacts": [ + "NetEmissionsTokenNetworkV2" + ] + } + } +} diff --git a/examples/cactus-carbon-accounting-backend/hardhat.config.js b/examples/cactus-carbon-accounting-backend/hardhat.config.js new file mode 100644 index 00000000000..979d010017f --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/hardhat.config.js @@ -0,0 +1,10 @@ +/** + * @type import('hardhat/config').HardhatUserConfig + */ +module.exports = { + solidity: "0.7.3", + paths: { + sources: "./src/main/solidity", + artifacts: "./src/main/json/generated/", + }, +}; diff --git a/examples/cactus-carbon-accounting-backend/package-lock.json b/examples/cactus-carbon-accounting-backend/package-lock.json new file mode 100644 index 00000000000..85dbd7be649 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/package-lock.json @@ -0,0 +1,9034 @@ +{ + "name": "@hyperledger/cactus-example-carbon-accounting-backend", + "version": "0.4.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular/common": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.2.1.tgz", + "integrity": "sha512-6FuZvJkYq8ZD4Bi6n7zaok1BMe5ve3EZDXLM7cDl2Hktpc+z0/mIZtVYMR0zvf7VX48E4zUU039779ixy0zDMw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/core": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.2.1.tgz", + "integrity": "sha512-FfMMG9yWW1xfZmHp8NtXJlNbLrgZ5Fm7FguRfTAuH007gDoknm+V3INKGyQfYOsIlxuJCSzyEeM3270lmbzYaQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.2.1.tgz", + "integrity": "sha512-/Xy1DQCZkCs1qWudmxooscPmVDkOEsgy9YJIoAYzsrRNINOpggBxBYRO9dztRmp2yDvRSAFTylmfQyTOrWrK7Q==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.2.1.tgz", + "integrity": "sha512-wu1B6AY0Om1Pj3U7woLGNbuAgajKEg+B6IKIaCwXv03lID53hpMagyBiNJLLEL6PIRO33G3rPbRKW9gGEr52vg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.2.1.tgz", + "integrity": "sha512-7DEAwy3w2GqhVDe9e5AZoFFEd6e/cnACkz39R4VWY8YiSz/HFtOQ7lQPmjzkmXMEKuGVnQzFwD4aAQWXd/myQg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.2.1.tgz", + "integrity": "sha512-YAq3zO8xdfjqEZ8Ur3go+5JXGIwpSTDj86dzZUMhTIsUuSVluBNdG1A+BQV2X5QNLh7VtdwfW5Npbjkn0Go/Cw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@apidevtools/json-schema-ref-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz", + "integrity": "sha512-n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==", + "requires": { + "@jsdevtools/ono": "^7.1.0", + "call-me-maybe": "^1.0.1", + "js-yaml": "^3.13.1" + } + }, + "@ethersproject/address": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.1.0.tgz", + "integrity": "sha512-rfWQR12eHn2cpstCFS4RF7oGjfbkZb0oqep+BfrT+gWEGWG2IowJvIsacPOvzyS1jhNF4MQ4BS59B04Mbovteg==", + "requires": { + "@ethersproject/bignumber": "^5.1.0", + "@ethersproject/bytes": "^5.1.0", + "@ethersproject/keccak256": "^5.1.0", + "@ethersproject/logger": "^5.1.0", + "@ethersproject/rlp": "^5.1.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.1.0.tgz", + "integrity": "sha512-wUvQlhTjPjFXIdLPOuTrFeQmSa6Wvls1bGXQNQWvB/SEn1NsTCE8PmumIEZxmOPjSHl1eV2uyHP5jBm5Cgj92Q==", + "requires": { + "@ethersproject/bytes": "^5.1.0", + "@ethersproject/logger": "^5.1.0", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bytes": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.1.0.tgz", + "integrity": "sha512-sGTxb+LVjFxJcJeUswAIK6ncgOrh3D8c192iEJd7mLr95V6du119rRfYT/b87WPkZ5I3gRBUYIYXtdgCWACe8g==", + "requires": { + "@ethersproject/logger": "^5.1.0" + } + }, + "@ethersproject/constants": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.1.0.tgz", + "integrity": "sha512-0/SuHrxc8R8k+JiLmJymxHJbojUDWBQqO+b+XFdwaP0jGzqC09YDy/CAlSZB6qHsBifY8X3I89HcK/oMqxRdBw==", + "requires": { + "@ethersproject/bignumber": "^5.1.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.1.0.tgz", + "integrity": "sha512-vrTB1W6AEYoadww5c9UyVJ2YcSiyIUTNDRccZIgwTmFFoSHwBtcvG1hqy9RzJ1T0bMdATbM9Hfx2mJ6H0i7Hig==", + "requires": { + "@ethersproject/bytes": "^5.1.0", + "js-sha3": "0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "@ethersproject/logger": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.1.0.tgz", + "integrity": "sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw==" + }, + "@ethersproject/properties": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.1.0.tgz", + "integrity": "sha512-519KKTwgmH42AQL3+GFV3SX6khYEfHsvI6v8HYejlkigSDuqttdgVygFTDsGlofNFchhDwuclrxQnD5B0YLNMg==", + "requires": { + "@ethersproject/logger": "^5.1.0" + } + }, + "@ethersproject/rlp": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.1.0.tgz", + "integrity": "sha512-vDTyHIwNPrecy55gKGZ47eJZhBm8LLBxihzi5ou+zrSvYTpkSTWRcKUlXFDFQVwfWB+P5PGyERAdiDEI76clxw==", + "requires": { + "@ethersproject/bytes": "^5.1.0", + "@ethersproject/logger": "^5.1.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.1.0.tgz", + "integrity": "sha512-tE5LFlbmdObG8bY04NpuwPWSRPgEswfxweAI1sH7TbP0ml1elNfqcq7ii/3AvIN05i5U0Pkm3Tf8bramt8MmLw==", + "requires": { + "@ethersproject/bytes": "^5.1.0", + "@ethersproject/logger": "^5.1.0", + "@ethersproject/properties": "^5.1.0", + "bn.js": "^4.4.0", + "elliptic": "6.5.4" + } + }, + "@ethersproject/transactions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.1.0.tgz", + "integrity": "sha512-s10crRLZEA0Bgv6FGEl/AKkTw9f+RVUrlWDX1rHnD4ZncPFeiV2AJr4nT7QSUhxJdFPvjyKRDb3nEH27dIqcPQ==", + "requires": { + "@ethersproject/address": "^5.1.0", + "@ethersproject/bignumber": "^5.1.0", + "@ethersproject/bytes": "^5.1.0", + "@ethersproject/constants": "^5.1.0", + "@ethersproject/keccak256": "^5.1.0", + "@ethersproject/logger": "^5.1.0", + "@ethersproject/properties": "^5.1.0", + "@ethersproject/rlp": "^5.1.0", + "@ethersproject/signing-key": "^5.1.0" + } + }, + "@hyperledger/cactus-api-client": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-api-client/-/cactus-api-client-0.4.0.tgz", + "integrity": "sha512-MpBu8Z1Fs7b/nkY/SQdoDSLlVuoPM2yuOeyy+uwqFuOrfp4lRkVvVvO/pspgUPIV6Yr3ZFU0+tRYCSx9MMPFIQ==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0" + } + }, + "@hyperledger/cactus-cmd-api-server": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-cmd-api-server/-/cactus-cmd-api-server-0.4.0.tgz", + "integrity": "sha512-fPCkHRC10gaBTlNn6//hPnD0cMQ1hlUEA0zHKpLid7YevHll9QIP+bAzkzAv+rBnS0BJEGnk22Mr1JO/j8HFag==", + "requires": { + "@hyperledger/cactus-cockpit": "0.4.0", + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0", + "@hyperledger/cactus-plugin-keychain-memory": "0.4.0", + "axios": "0.21.1", + "body-parser": "1.19.0", + "compression": "1.7.4", + "convict": "6.0.0", + "convict-format-with-validator": "6.0.0", + "cors": "2.8.5", + "express": "4.17.1", + "express-http-proxy": "1.6.0", + "express-openapi-validator": "3.10.0", + "jose": "1.27.2", + "node-forge": "0.10.0", + "semver": "7.3.2", + "uuid": "7.0.2" + }, + "dependencies": { + "jose": { + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-1.27.2.tgz", + "integrity": "sha512-zLIwnMa8dh5A2jFo56KvhiXCaW0hFjdNvG0I5GScL8Wro+/r/SnyIYTbnX3fYztPNSfgQp56sDMHUuS9c3e6bw==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "uuid": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", + "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==" + } + } + }, + "@hyperledger/cactus-cockpit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-cockpit/-/cactus-cockpit-0.4.0.tgz", + "integrity": "sha512-J24JEhGj1lTrxPanD9FesY6adO7tydwdENvrh7mat1b2O8UnDht2Tqfi9kObV4UmEGWEA4t6U2KASWgN214+pg==", + "requires": { + "@angular/common": "11.2.1", + "@angular/core": "11.2.1", + "@angular/forms": "11.2.1", + "@angular/platform-browser": "11.2.1", + "@angular/platform-browser-dynamic": "11.2.1", + "@angular/router": "11.2.1", + "@hyperledger/cactus-api-client": "0.4.0", + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0", + "@ionic-native/core": "5.0.0", + "@ionic-native/splash-screen": "5.0.0", + "@ionic-native/status-bar": "5.0.0", + "@ionic/angular": "5.1.1", + "jwt-decode": "2.2.0", + "rxjs": "6.5.5", + "zone.js": "~0.10.2" + } + }, + "@hyperledger/cactus-common": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-common/-/cactus-common-0.4.0.tgz", + "integrity": "sha512-bY7XNwx13ythWmFAnfl4+WyHI+7i/ncaAiJnCORXBcbSqjBDcrwcOHo0HsGcAN1tZrKibZGCQD9mCvPa8ylThQ==", + "requires": { + "json-stable-stringify": "1.0.1", + "key-encoder": "2.0.3", + "loglevel": "1.6.7", + "loglevel-plugin-prefix": "0.8.4", + "secp256k1": "4.0.2", + "sha3": "2.1.3" + } + }, + "@hyperledger/cactus-core": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-core/-/cactus-core-0.4.0.tgz", + "integrity": "sha512-q0aenOqyYsI3AzW7UgucF0aT41aOz7bZG5L2idcG5ZCysYg8Edp7rVTXPql/ejDJm/oBgZTnZR1rDKVcyneyKw==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "express": "4.17.1", + "typescript-optional": "2.0.1" + } + }, + "@hyperledger/cactus-core-api": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-core-api/-/cactus-core-api-0.4.0.tgz", + "integrity": "sha512-uZncHnpSZB183Dxoh/TEZuvZiQ7M5bD4i/EOhgnGCftHBfktSQtM6F34FmYrc84Zhc8CLQZbI/296N84yztutw==", + "requires": { + "axios": "0.21.1", + "express": "4.17.1", + "typescript-optional": "2.0.1" + } + }, + "@hyperledger/cactus-example-supply-chain-business-logic-plugin": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-example-supply-chain-business-logic-plugin/-/cactus-example-supply-chain-business-logic-plugin-0.4.0.tgz", + "integrity": "sha512-e3svFBZPHiboUrBAf9uOEmsEJapVCeK64rqQsoEwo9ABYDugyVfW7loXUUfDavSbgDHRwFHWNkrRrHiU8LQxlQ==", + "requires": { + "@hyperledger/cactus-api-client": "0.4.0", + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0", + "@hyperledger/cactus-plugin-keychain-memory": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-besu": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-fabric": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-quorum": "0.4.0", + "async-exit-hook": "2.0.1", + "axios": "0.21.1", + "express": "4.17.1", + "openapi-types": "7.0.1", + "swarm-js": "0.1.40", + "typescript-optional": "2.0.1", + "uuid": "8.3.0" + } + }, + "@hyperledger/cactus-example-supply-chain-frontend": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-example-supply-chain-frontend/-/cactus-example-supply-chain-frontend-0.4.0.tgz", + "integrity": "sha512-CGzrynb4r+yl0pUeDHhjAkhAGuXRpfB7381esRzokO+3b6hrUIQgC9tiLad4qrPN/r1FQ45irl7G8K0qjSaf0g==", + "requires": { + "@angular/common": "~10.0.0", + "@angular/core": "~10.0.0", + "@angular/forms": "~10.0.0", + "@angular/platform-browser": "~10.0.0", + "@angular/platform-browser-dynamic": "~10.0.0", + "@angular/router": "~10.0.0", + "@hyperledger/cactus-api-client": "0.4.0", + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "@hyperledger/cactus-example-supply-chain-business-logic-plugin": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-besu": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-fabric": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-quorum": "0.4.0", + "@ionic-native/core": "^5.0.0", + "@ionic-native/splash-screen": "^5.0.0", + "@ionic-native/status-bar": "^5.0.0", + "@ionic/angular": "^5.0.0", + "rxjs": "~6.5.5", + "tslib": "^2.0.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "@angular/common": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.0.14.tgz", + "integrity": "sha512-EOAuaMt2HwJF3DtIJ/ksHtnF8Pqh5K2rWISYLEs9R3WNaSGn74kbCODAT4pNhI8P22Ykl3H4FmQUgnDZ3uDAUg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/core": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.0.14.tgz", + "integrity": "sha512-m+c9g6fA/gE+6K7It01b6r8TEmbuFjUZajQ9gG/pzist0mTBcqfvn0O4h5X+ebnSgw/bbnnp+4PbaXEi1pOWZQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.0.14.tgz", + "integrity": "sha512-McKh3rXDlAE7qmCnyWKENb2HhqAT+1dsAfChuqs0w8jhKkoRgA00RDFee6dZ6XQCc907DwuV0K8+wC3CvBp35w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.14.tgz", + "integrity": "sha512-DcBZ1wt2TwtXrdcmCTWanAzu2Vxk5Uvioam0UcDxcgXD84T2fHipyfZVn07fMqRvzFQj45tDNAEevFBnGZar4w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.14.tgz", + "integrity": "sha512-PPCAiNh/JSuQNKXOhj3a8CTFdVhTgF/EpGtaotnVr/BfbJMeFImKo7m2QQOTsAFaEP2DurSHnofPnMWAfHS2mg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.0.14.tgz", + "integrity": "sha512-VWzaNyPZDY99TMszV1GlXJgVOxXsjhJrsv3mIcjaz1dfdlKOeKTVDLdnyXfP9CkwE3PRmvG7eSXppIj6nn9BpQ==", + "requires": { + "tslib": "^2.0.0" + } + } + } + }, + "@hyperledger/cactus-plugin-consortium-manual": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-plugin-consortium-manual/-/cactus-plugin-consortium-manual-0.4.0.tgz", + "integrity": "sha512-ow2OeDQOsb/IefeIqlR/hLKldgaDIVBYtzp/rpdg3lHHTaw7sgcDchclpBIAoj1iFCxlHYl1OCR2pziBfl7w0w==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "axios": "0.21.1", + "body-parser": "1.19.0", + "express": "4.17.1", + "jose": "1.27.2", + "json-stable-stringify": "1.0.1", + "prom-client": "13.0.0", + "typescript-optional": "2.0.1", + "uuid": "8.3.2" + }, + "dependencies": { + "jose": { + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-1.27.2.tgz", + "integrity": "sha512-zLIwnMa8dh5A2jFo56KvhiXCaW0hFjdNvG0I5GScL8Wro+/r/SnyIYTbnX3fYztPNSfgQp56sDMHUuS9c3e6bw==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@hyperledger/cactus-plugin-keychain-memory": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-plugin-keychain-memory/-/cactus-plugin-keychain-memory-0.4.0.tgz", + "integrity": "sha512-N+dgUS25KMJMdHiwZdMvKABwaYtIED9xd9DwOmNfE7zFeqRe1FMM3l2J1BwSxh2QuZ4wTtzedB1wr5/xxbN7WQ==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "axios": "0.21.1", + "express": "4.17.1", + "prom-client": "13.1.0" + }, + "dependencies": { + "prom-client": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz", + "integrity": "sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==", + "requires": { + "tdigest": "^0.1.1" + } + } + } + }, + "@hyperledger/cactus-plugin-ledger-connector-besu": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-plugin-ledger-connector-besu/-/cactus-plugin-ledger-connector-besu-0.4.0.tgz", + "integrity": "sha512-8XIkHIQtkeQ7KjK2EKNzXndvjpIyYcQWwS0jpO+vcJ07yBrdYP7+NQKs8BJ1fUsz9K1dGsO/Hksp+ITF1zQY7A==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "axios": "0.21.1", + "express": "4.17.1", + "joi": "14.3.1", + "openapi-types": "7.0.1", + "prom-client": "13.1.0", + "typescript-optional": "2.0.1", + "web3": "1.2.7" + }, + "dependencies": { + "prom-client": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz", + "integrity": "sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==", + "requires": { + "tdigest": "^0.1.1" + } + } + } + }, + "@hyperledger/cactus-plugin-ledger-connector-fabric": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-plugin-ledger-connector-fabric/-/cactus-plugin-ledger-connector-fabric-0.4.0.tgz", + "integrity": "sha512-oZq9xfkssSGzr+E0ACdLSR1oIDsBtrXAfYX/G9zIM3C0UIAsh0KmeAMcZUZhUIQ6hn3ysfZrIiztKcPSTIkclw==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "axios": "0.21.1", + "bl": "1.2.3", + "express": "4.17.1", + "fabric-network": "1.4.13", + "form-data": "3.0.0", + "http-status-codes": "2.1.4", + "multer": "1.4.2", + "ngo": "2.6.2", + "node-ssh": "11.0.0", + "openapi-types": "7.0.1", + "prom-client": "13.0.0", + "temp": "0.9.4", + "typescript-optional": "2.0.1", + "uuid": "8.3.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@hyperledger/cactus-plugin-ledger-connector-quorum": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@hyperledger/cactus-plugin-ledger-connector-quorum/-/cactus-plugin-ledger-connector-quorum-0.4.0.tgz", + "integrity": "sha512-Lln9S0tKNsLUpFsTW5jntYdXB5KS5EfkCgVHRTKKaJoqQWhlk+B1/sZlV0qNgYINSc8omG/makc0uknATdt+4A==", + "requires": { + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "axios": "0.21.1", + "express": "4.17.1", + "prom-client": "13.1.0", + "typescript-optional": "2.0.1", + "web3": "1.2.7", + "web3-eth-contract": "1.2.7" + }, + "dependencies": { + "prom-client": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz", + "integrity": "sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==", + "requires": { + "tdigest": "^0.1.1" + } + } + } + }, + "@ionic-native/core": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.0.0.tgz", + "integrity": "sha512-qtshWPo+CMq9ZoDGcg+1XF1+k2ASm0sLtZsIbXmYo5X82Q9cUhjk95X9BqHnjXHOdIWk4J/D3ot0/vzmMTNdbA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/splash-screen": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.0.0.tgz", + "integrity": "sha512-+7QfXPkaosGsR3ohEiL/WJn23NHVDZYvnilYNrOMF7oohnj5ngH46fCNYp1Tpybe5GCV1iP++RzDvE5jghWLZg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/status-bar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.0.0.tgz", + "integrity": "sha512-mJfj+VXTOgf9Og0S7QDlT9I8UVI+Wj4kpZUHdQizovA/R0m1HG2hLKtEMy00iDVbOBjRsXGcD6JXCOeyVjg7LA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic/angular": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.1.1.tgz", + "integrity": "sha512-/39Z3DnmdbTM3pIGJRLWG+rVI7jrDWkDL8Cds2ziZbGLwhbd3jjEXVbSeR62RiEpMCL2FSHtLUKhd6/OIDD1fQ==", + "requires": { + "@ionic/core": "5.1.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@ionic/core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.1.1.tgz", + "integrity": "sha512-mmQL7hzwwReqFCJlRyxo3sNoI7r63GYnZD6QBXbYmCp83POvL89fQYegUfURM1Fcw0JiAZ3BsCoMYxuFXa7+cA==", + "requires": { + "ionicons": "^5.0.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "@nomiclabs/ethereumjs-vm": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/ethereumjs-vm/-/ethereumjs-vm-4.2.2.tgz", + "integrity": "sha512-8WmX94mMcJaZ7/m7yBbyuS6B+wuOul+eF+RY9fBpGhNaUpyMR/vFIcDojqcWQ4Yafe1tMKY5LDu2yfT4NZgV4Q==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "3.0.0", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "@openzeppelin/contracts": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.3.0.tgz", + "integrity": "sha512-AemZEsQYtUp1WRkcmZm1div5ORfTpLquLaziCIrSagjxyKdmObxuaY1yjQ5SHFMctR8rLwp706NXTbiIRJg7pw==" + }, + "@openzeppelin/contracts-upgradeable": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-3.4.1.tgz", + "integrity": "sha512-wBGlUzEkOxcj/ghtcF2yKc8ZYh+PTUtm1mK38zoENulJ6aplij7eH8quo3lMugfzPJy+V6V5qI8QhdQmCn7hkQ==" + }, + "@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" + }, + "@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "requires": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true + }, + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@solidity-parser/parser": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.11.1.tgz", + "integrity": "sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ==", + "dev": true + }, + "@stencil/core": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.5.2.tgz", + "integrity": "sha512-bgjPXkSzzg1WnTgVUm6m5ZzpKt602WmA/QljODAW1xVN40OHJdbGblzF/F6MFzqv2c5Cy30CB41arc8qADIdcQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bytebuffer": { + "version": "5.0.42", + "resolved": "https://registry.npmjs.org/@types/bytebuffer/-/bytebuffer-5.0.42.tgz", + "integrity": "sha512-lEgKojWUAc/MG2t649oZS5AfYFP2xRNPoDuwDBlBMjHXd8MaGPgFgtCXUK7inZdBOygmVf10qxc1Us8GXC96aw==", + "requires": { + "@types/long": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + }, + "@types/elliptic": { + "version": "6.4.12", + "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.12.tgz", + "integrity": "sha512-gP1KsqoouLJGH6IJa28x7PXb3cRqh83X8HCLezd2dF+XcAIMKYv53KV+9Zn6QA561E120uOqZBQ+Jy/cl+fviw==", + "requires": { + "@types/bn.js": "*" + } + }, + "@types/express": { + "version": "4.17.8", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.8.tgz", + "integrity": "sha512-wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz", + "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "@types/lru-cache": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz", + "integrity": "sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/node": { + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", + "dev": true + }, + "@types/secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-QMg+9v0bbNJ2peLuHRWxzmy0HRJIG6gFZNhaRSp7S3ggSbCCxiqQB2/ybvhXyhHOCequpNkrx7OavNhrWOsW0A==", + "requires": { + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/uuid": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.0.1.tgz", + "integrity": "sha512-2kE8rEFgJpbBAPw5JghccEevQb0XVU0tewF/8h7wPQTeCtoJ6h8qmBIwuzUVm2MutmzC/cpCkwxudixoNYDp1A==", + "dev": true + }, + "@web3-js/scrypt-shim": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", + "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", + "requires": { + "scryptsy": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@web3-js/websocket": { + "version": "1.0.30", + "resolved": "https://registry.npmjs.org/@web3-js/websocket/-/websocket-1.0.30.tgz", + "integrity": "sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA==", + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", + "requires": { + "colour": "~0.7.1", + "optjs": "~3.2.2" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, + "requires": { + "async": "^2.4.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-request": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", + "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bytebuffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", + "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", + "requires": { + "long": "~3" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "dev": true, + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "cloudant-follow": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/cloudant-follow/-/cloudant-follow-0.17.0.tgz", + "integrity": "sha512-JQ1xvKAHh8rsnSVBjATLCjz/vQw1sWBGadxr2H69yFMwD7hShUGDwwEefdypaxroUJ/w6t1cSwilp/hRUxEW8w==", + "requires": { + "browser-request": "~0.3.0", + "debug": "^3.0.0", + "request": "^2.83.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "colour": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", + "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convict": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.0.0.tgz", + "integrity": "sha512-osfPkv5yjVoZqrTWBXuh/ABGpFoaJplbt0WXr0CodR4CSWt8UnzY4PSUyRz/+5BX5YUtWcToG29Kr0B6xhdIMg==", + "requires": { + "lodash.clonedeep": "^4.5.0", + "yargs-parser": "^18.1.3" + } + }, + "convict-format-with-validator": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/convict-format-with-validator/-/convict-format-with-validator-6.0.0.tgz", + "integrity": "sha512-3E8cLYkHKQDTCF4MYOzReVeHrObfulUR5hw/Ur/hE/CPwXRcJHZO7Jt0JyE86IpvAZsgrOjMpVy93USjrubVqg==", + "requires": { + "validator": "^11.1.0" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "core-js-pure": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz", + "integrity": "sha512-PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "deasync": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.21.tgz", + "integrity": "sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + }, + "dependencies": { + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "optional": true + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "errs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/errs/-/errs-0.3.2.tgz", + "integrity": "sha1-eYCZstvTfKK8dJ5TinwTB9C1BJk=" + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eth-sig-util": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", + "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", + "dev": true, + "requires": { + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true + } + } + }, + "ethashjs": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", + "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", + "dev": true, + "requires": { + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz", + "integrity": "sha512-GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==", + "requires": { + "js-sha3": "^0.8.0" + }, + "dependencies": { + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + } + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + } + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-account": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", + "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", + "dev": true, + "requires": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + } + } + }, + "ethereumjs-blockchain": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", + "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.56", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz", + "integrity": "sha512-LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==" + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "express-http-proxy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-1.6.0.tgz", + "integrity": "sha512-7Re6Lepg96NA2wiv7DC5csChAScn4K76/UgYnC71XiITCT1cgGTJUGK6GS0pIixudg3Fbx3Q6mmEW3mZv5tHFQ==", + "requires": { + "debug": "^3.0.1", + "es6-promise": "^4.1.1", + "raw-body": "^2.3.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "express-openapi-validator": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/express-openapi-validator/-/express-openapi-validator-3.10.0.tgz", + "integrity": "sha512-+vNPS00ajussUlZZGJsbdUXOHp/hToF72mD5gfZ6zTcYilNHb7DaDEzmTm5/Y1gI86AO0IXNxZVpmZYw6LEkVw==", + "requires": { + "ajv": "^6.12.0", + "content-type": "^1.0.4", + "deasync": "^0.1.19", + "js-yaml": "^3.13.1", + "json-schema-ref-parser": "^8.0.0", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "lodash.zipobject": "^4.1.3", + "media-typer": "^1.1.0", + "multer": "^1.4.2", + "ono": "^7.1.1", + "path-to-regexp": "^6.1.0" + }, + "dependencies": { + "media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" + }, + "path-to-regexp": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", + "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "fabric-ca-client": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/fabric-ca-client/-/fabric-ca-client-1.4.13.tgz", + "integrity": "sha512-BGJpyFqS7b9N3biLXW/59erRBNTTUZaCKpqe23e5yfwxsio58aw9RSAyeVgjB5bB076xPjqassDvIxHLIg9e/g==", + "requires": { + "grpc": "1.24.2", + "jsrsasign": "^8.0.16", + "lodash.clone": "4.5.0", + "url": "^0.11.0", + "util": "^0.10.3", + "winston": "^2.4.0" + } + }, + "fabric-client": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/fabric-client/-/fabric-client-1.4.13.tgz", + "integrity": "sha512-gtCidYR3prIrSHcLeYJpfch78KJc+XuFvvBczGs4TkOTRK04dFztUK9YmllBrSc0mjedJV0IP9NVnvo1/2lN1A==", + "requires": { + "@types/bytebuffer": "^5.0.34", + "bn.js": "^4.11.3", + "callsite": "^1.0.0", + "elliptic": "^6.5.2", + "fabric-ca-client": "1.4.13", + "fs-extra": "^8.1.0", + "grpc": "1.24.2", + "ignore-walk": "^3.0.0", + "js-sha3": "^0.7.0", + "js-yaml": "^3.9.0", + "jsrsasign": "^8.0.16", + "klaw": "^2.0.0", + "lodash.clone": "4.5.0", + "long": "^4.0.0", + "nano": "^6.4.4", + "nconf": "^0.10.0", + "pkcs11js": "^1.0.6", + "promise-settle": "^0.3.0", + "protobufjs": "5.0.3", + "sjcl": "1.0.7", + "tar-stream": "1.6.1", + "url": "^0.11.0", + "winston": "^2.4.0" + }, + "dependencies": { + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "fabric-network": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/fabric-network/-/fabric-network-1.4.13.tgz", + "integrity": "sha512-dB0v/Y7efgdal++IDixHtB1huykg8LDY10cSSp0sSPJWxJXFDyXlqURm2MoijyCdcW78wIU5ScTrUGm34qTLKw==", + "requires": { + "fabric-ca-client": "1.4.13", + "fabric-client": "1.4.13", + "nano": "^6.4.4", + "rimraf": "^2.6.2", + "winston": "^2.4.0" + } + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dev": true, + "requires": { + "checkpoint-store": "^1.1.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flow-stoplight": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", + "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", + "dev": true + }, + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "go-bin": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/go-bin/-/go-bin-1.4.0.tgz", + "integrity": "sha512-T+jeJFVboLESIVqi3v8vJMAoHvsauR8XRKBkTwLwE1PUdDWOSAyrIQ9ymWFJ6suaDNEcNNglBCOc6AFbtVkqow==", + "requires": { + "decompress": "^4.2.1", + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "go-versions": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/go-versions/-/go-versions-1.3.2.tgz", + "integrity": "sha512-nKjEKqRT1BUPVGO8WO5EKUWgJ6l1sThfSdYuRi6WwNyiwR4SOfC/FoB7aRRUtfmMHBU3ZJNMG2x8GiE51/tbhg==" + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "grpc": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.24.2.tgz", + "integrity": "sha512-EG3WH6AWMVvAiV15d+lr+K77HJ/KV/3FvMpjKjulXHbTwgDZkhkcWbwhxFAoTdxTkQvy0WFcO3Nog50QBbHZWw==", + "requires": { + "@types/bytebuffer": "^5.0.40", + "lodash.camelcase": "^4.3.0", + "lodash.clone": "^4.5.0", + "nan": "^2.13.2", + "node-pre-gyp": "^0.14.0", + "protobufjs": "^5.0.3" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "resolved": false, + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "3.2.6", + "resolved": false, + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delegates": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": false, + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "gauge": { + "version": "2.7.4", + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": false, + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": false, + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": false, + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minipass": { + "version": "2.9.0", + "resolved": false, + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": false, + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": false, + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "needle": { + "version": "2.4.0", + "resolved": false, + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "resolved": false, + "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==" + }, + "npm-packlist": { + "version": "1.4.6", + "resolved": false, + "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "rc": { + "version": "1.2.8", + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": false, + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": false, + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "string-width": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tar": { + "version": "4.4.13", + "resolved": false, + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "3.1.1", + "resolved": false, + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "hardhat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.1.2.tgz", + "integrity": "sha512-42iOheDsDl6Gr7sBfpA0S+bQUIcXSDEUrrqmnFEcBHx9qBoQad3s212y2ODmmkdLt+PqqTM+Mq8N3bZDTdjoLg==", + "dev": true, + "requires": { + "@nomiclabs/ethereumjs-vm": "4.2.2", + "@sentry/node": "^5.18.1", + "@solidity-parser/parser": "^0.11.0", + "@types/bn.js": "^4.11.5", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "eth-sig-util": "^2.5.2", + "ethereum-cryptography": "^0.1.2", + "ethereumjs-abi": "^0.6.8", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "^7.1.3", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "lodash": "^4.17.11", + "merkle-patricia-tree": "3.0.0", + "mnemonist": "^0.38.0", + "mocha": "^7.1.2", + "node-fetch": "^2.6.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "slash": "^3.0.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "true-case-path": "^2.2.1", + "tsort": "0.0.1", + "uuid": "^3.3.2", + "ws": "^7.2.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http-status-codes": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.1.4.tgz", + "integrity": "sha512-MZVIsLKGVOVE1KEnldppe6Ij+vmemMuApDfjhVSLzyYP+td0bREEYyAoIw9yFePoBXManCuBqmiNP5FqJS5Xkg==" + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, + "immutable": { + "version": "4.0.0-rc.12", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.12.tgz", + "integrity": "sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "requires": { + "fp-ts": "^1.0.0" + } + }, + "ionicons": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.5.1.tgz", + "integrity": "sha512-1auVisfaXmkmxINer8Q3kJGHP1vSxk86hf7By95eJ+Av9+oBcNuAEBfSe3jaMaGRVxVw8U/2j23MFq7R3c0HPg==", + "requires": { + "@stencil/core": "^2.5.0" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "joi": { + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.1.tgz", + "integrity": "sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==", + "requires": { + "hoek": "6.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "jose": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-1.28.0.tgz", + "integrity": "sha512-JmfDRzt/HSj8ipd9TsDtEHoLUnLYavG+7e8F6s1mx2jfVSfXOTaFQsJUydbjJpTnTDHP1+yKL9Ke7ktS/a0Eiw==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", + "integrity": "sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-ref-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz", + "integrity": "sha512-2P4icmNkZLrBr6oa5gSZaDSol/oaBHYkoP/8dsw63E54NnHGRhhiFuy9yFoxPuSm+uHKmeGxAAWMDF16SCHhcQ==", + "requires": { + "@apidevtools/json-schema-ref-parser": "8.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsrsasign": { + "version": "8.0.24", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.24.tgz", + "integrity": "sha512-u45jAyusqUpyGbFc2IbHoeE4rSkoBWQgLe/w99temHenX+GyCz4nflU5sjK7ajU1ffZTezl6le7u43Yjr/lkQg==" + }, + "jwt-decode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", + "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" + }, + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "key-encoder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-2.0.3.tgz", + "integrity": "sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==", + "requires": { + "@types/elliptic": "^6.4.9", + "asn1.js": "^5.0.1", + "bn.js": "^4.11.8", + "elliptic": "^6.4.1" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "klaw": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.1.1.tgz", + "integrity": "sha1-QrdolHARacyRD9DRnOZ3tfs3ivE=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", + "dev": true, + "requires": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + } + } + }, + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", + "dev": true, + "requires": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", + "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + }, + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", + "dev": true, + "requires": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "lodash.zipobject": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz", + "integrity": "sha1-s5n1q6j/YqdG9peb8gshT5ZNvvg=" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "loglevel": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", + "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==" + }, + "loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==" + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merkle-patricia-tree": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", + "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "level-ws": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", + "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "requires": { + "mime-db": "1.46.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, + "mnemonist": { + "version": "0.38.3", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", + "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", + "dev": true, + "requires": { + "obliterator": "^1.6.1" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "mock-fs": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", + "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "nano": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/nano/-/nano-6.4.4.tgz", + "integrity": "sha512-7sldMrZI1ZH8QE29PnzohxLfR67WNVzMKLa7EMl3x9Hr+0G+YpOUCq50qZ9G66APrjcb0Of2BTOZLNBCutZGag==", + "requires": { + "cloudant-follow": "~0.17.0", + "debug": "^2.2.0", + "errs": "^0.3.2", + "lodash.isempty": "^4.4.0", + "request": "^2.85.0" + } + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "nconf": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz", + "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==", + "requires": { + "async": "^1.4.0", + "ini": "^1.3.0", + "secure-keys": "^1.0.0", + "yargs": "^3.19.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "ngo": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ngo/-/ngo-2.6.2.tgz", + "integrity": "sha512-fOAX8YlMFUHvJUBp0uNOqYMS/OqK05iV9lPzLVhn9sFJR0n4wFIfz9Y59Kg0v9mtrxZizN8L0mkimn7ikyIbbA==", + "requires": { + "execa": "^4.0.0", + "go-bin": "^1.4.0", + "go-versions": "^1.3.2" + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, + "node-ssh": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/node-ssh/-/node-ssh-11.0.0.tgz", + "integrity": "sha512-zC8TuZX82/x/ZsH4GzE5jmUGQAS2ajcDOoD352x6W56A7+4ChuGdGYi+t9NnLKEtRYvbvNH4HO+LvlQVENmxog==", + "requires": { + "make-dir": "^3.1.0", + "sb-promise-queue": "^2.1.0", + "sb-scandir": "^3.1.0", + "shell-escape": "^0.2.0", + "ssh2": "^0.8.9" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "obliterator": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", + "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", + "dev": true + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "requires": { + "http-https": "^1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-9jnfVriq7uJM4o5ganUY54ntUm+5EK21EGaQ5NWnkWg3zz5ywbbonlBguRcnmF1/HDiIe3zxNxXcO1YPBmPcQQ==", + "requires": { + "@jsdevtools/ono": "7.1.3" + } + }, + "openapi-types": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-7.0.1.tgz", + "integrity": "sha512-6pi4/Fw+JIW1HHda2Ij7LRJ5QJ8f6YzaXnsRA6m44BJz8nLq/j5gVFzPBKJo+uOFhAeHqZC/3uzhTpYPga3Q/A==" + }, + "optjs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", + "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkcs11js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pkcs11js/-/pkcs11js-1.2.2.tgz", + "integrity": "sha512-xZYdI3qOfOQhSl4j79iR+8Yj3ZkwlILkIfpJkhWPLDP00DyT0aiPOVTh8tt8vgda0GrSjyJza3GFjFyRdV+eFg==", + "optional": true, + "requires": { + "nan": "^2.14.2" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prom-client": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz", + "integrity": "sha512-M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A==", + "requires": { + "tdigest": "^0.1.1" + } + }, + "promise-settle": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promise-settle/-/promise-settle-0.3.0.tgz", + "integrity": "sha1-tO/VcqHrdM95T4KM00naQKCOTpY=" + }, + "protobufjs": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz", + "integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==", + "requires": { + "ascli": "~1", + "bytebuffer": "~5", + "glob": "^7.0.5", + "yargs": "^3.10.0" + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } + }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sb-promise-queue": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sb-promise-queue/-/sb-promise-queue-2.1.0.tgz", + "integrity": "sha512-zwq4YuP1FQFkGx2Q7GIkZYZ6PqWpV+bg0nIO1sJhWOyGyhqbj0MsTvK6lCFo5TQwX5pZr6SCQ75e8PCDCuNvkg==" + }, + "sb-scandir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sb-scandir/-/sb-scandir-3.1.0.tgz", + "integrity": "sha512-70BVm2xz9jn94zSQdpvYrEG101/UV9TVGcfWr9T5iob3QhCK4lYXeculfBqPGFv3XTeKgx4dpWyYIDeZUqo4kg==", + "requires": { + "sb-promise-queue": "^2.1.0" + } + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + }, + "scryptsy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", + "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "secure-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", + "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=" + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "requires": { + "commander": "^2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "sha3": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.3.tgz", + "integrity": "sha512-Io53D4o9qOmf3Ow9p/DoGLQiQHhtuR0ulbyambvRSG+OX5yXExk2yYfvjHtb7AtOyk6K6+sPeK/qaowWc/E/GA==", + "requires": { + "buffer": "5.6.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-escape": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/shell-escape/-/shell-escape-0.2.0.tgz", + "integrity": "sha1-aP0CXrBJC09WegJ/C/IkgLX4QTM=" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sjcl": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.7.tgz", + "integrity": "sha1-MrNlpQ3Ju6JriLo8nfjqNCF9n0U=" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "solc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.1.tgz", + "integrity": "sha512-LepFVKDOcZ1O3OskOy45XTQ6G4rMRTmsGjn4gssaOrI9uyJI9LL6/X2MlYqeJx22UrpPUtCjQAb5IFWRoOSe+w==", + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssh2": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz", + "integrity": "sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw==", + "requires": { + "ssh2-streams": "~0.4.10" + } + }, + "ssh2-streams": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz", + "integrity": "sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ==", + "requires": { + "asn1": "~0.2.0", + "bcrypt-pbkdf": "^1.0.2", + "streamsearch": "~0.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "tar-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", + "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.1.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.0", + "xtend": "^4.0.0" + } + }, + "tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "requires": { + "bintrees": "1.0.1" + } + }, + "temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "requires": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "requires": { + "hoek": "6.x.x" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true + }, + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript-optional": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/typescript-optional/-/typescript-optional-2.0.1.tgz", + "integrity": "sha512-xuwmqsCjE4OeeMKxbNX3jjNcISGzYh5Q9R1rM5OyxEVNIr94CB5llCkfKW+1nZTKbbUV0axN3QAUuX2fus/DhQ==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "utf-8-validate": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", + "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" + }, + "validator": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", + "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web3": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.7.tgz", + "integrity": "sha512-jAAJHMfUlTps+jH2li1ckDFEpPrEEriU/ubegSTGRl3KRdNhEqT93+3kd7FHJTn3NgjcyURo2+f7Da1YcZL8Mw==", + "requires": { + "web3-bzz": "1.2.7", + "web3-core": "1.2.7", + "web3-eth": "1.2.7", + "web3-eth-personal": "1.2.7", + "web3-net": "1.2.7", + "web3-shh": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-bzz": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.7.tgz", + "integrity": "sha512-iTIWBR+Z+Bn09WprtKm46LmyNOasg2lUn++AjXkBTB8UNxlUybxtza84yl2ETTZUs0zuFzdSSAEgbjhygG+9oA==", + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.56", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz", + "integrity": "sha512-LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==" + } + } + }, + "web3-core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.0.tgz", + "integrity": "sha512-BwWvAaKJf4KFG9QsKRi3MNoNgzjI6szyUlgme1qNPxUdCkaS3Rdpa0VKYNHP7M/YTk82/59kNE66mH5vmoaXjA==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-requestmanager": "1.3.0", + "web3-utils": "1.3.0" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + } + } + }, + "web3-core-helpers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.0.tgz", + "integrity": "sha512-+MFb1kZCrRctf7UYE7NCG4rGhSXaQJ/KF07di9GVK1pxy1K0+rFi61ZobuV1ky9uQp+uhhSPts4Zp55kRDB5sw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.3.0", + "web3-utils": "1.3.0" + } + }, + "web3-core-method": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.0.tgz", + "integrity": "sha512-h0yFDrYVzy5WkLxC/C3q+hiMnzxdWm9p1T1rslnuHgOp6nYfqzu/6mUIXrsS4h/OWiGJt+BZ0xVZmtC31HDWtg==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "web3-core-promievent": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-utils": "1.3.0" + } + }, + "web3-core-promievent": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.0.tgz", + "integrity": "sha512-blv69wrXw447TP3iPvYJpllkhW6B18nfuEbrfcr3n2Y0v1Jx8VJacNZFDFsFIcgXcgUIVCtOpimU7w9v4+rtaw==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.0.tgz", + "integrity": "sha512-3yMbuGcomtzlmvTVqNRydxsx7oPlw3ioRL6ReF9PeNYDkUsZaUib+6Dp5eBt7UXh5X+SIn/xa1smhDHz5/HpAw==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "web3-providers-http": "1.3.0", + "web3-providers-ipc": "1.3.0", + "web3-providers-ws": "1.3.0" + } + }, + "web3-core-subscriptions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.0.tgz", + "integrity": "sha512-MUUQUAhJDb+Nz3S97ExVWveH4utoUnsbPWP+q1HJH437hEGb4vunIb9KvN3hFHLB+aHJfPeStM/4yYTz5PeuyQ==", + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0" + } + }, + "web3-eth": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.7.tgz", + "integrity": "sha512-ljLd0oB4IjWkzFGVan4HkYhJXhSXgn9iaSaxdJixKGntZPgWMJfxeA+uLwTrlxrWzhvy4f+39WnT7wCh5e9TGg==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.7", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-eth-abi": "1.2.7", + "web3-eth-accounts": "1.2.7", + "web3-eth-contract": "1.2.7", + "web3-eth-ens": "1.2.7", + "web3-eth-iban": "1.2.7", + "web3-eth-personal": "1.2.7", + "web3-net": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-abi": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.7.tgz", + "integrity": "sha512-4FnlT1q+D0XBkxSMXlIb/eG337uQeMaUdtVQ4PZ3XzxqpcoDuMgXm4o+3NRxnWmr4AMm6QKjM+hcC7c0mBKcyg==", + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.7" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-accounts": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.7.tgz", + "integrity": "sha512-AE7QWi/iIQIjXwlAPtlMabm/OPFF0a1PhxT1EiTckpYNP8fYs6jW7lYxEtJPPJIKqfMjoi1xkEqTVR1YZQ88lg==", + "requires": { + "@web3-js/scrypt-shim": "^0.1.0", + "crypto-browserify": "3.12.0", + "eth-lib": "^0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.7", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + } + } + }, + "web3-eth-contract": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.7.tgz", + "integrity": "sha512-uW23Y0iL7XroRNbf9fWZ1N6OYhEYTJX8gTuYASuRnpYrISN5QGiQML6pq/NCzqypR1bl5E0fuINZQSK/xefIVw==", + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.7", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-eth-abi": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-ens": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.7.tgz", + "integrity": "sha512-SPRnvUNWQ0CnnTDBteGIJkvFWEizJcAHlVsrFLICwcwFZu+appjX1UOaoGu2h3GXWtc/XZlu7B451Gi+Os2cTg==", + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.7", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-eth-abi": "1.2.7", + "web3-eth-contract": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-iban": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.0.tgz", + "integrity": "sha512-v9mZWhR4fPF17/KhHLiWir4YHWLe09O3B/NTdhWqw3fdAMJNztzMHGzgHxA/4fU+rhrs/FhDzc4yt32zMEXBZw==", + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.3.0" + } + }, + "web3-eth-personal": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.7.tgz", + "integrity": "sha512-2OAa1Spz0uB29dwCM8+1y0So7E47A4gKznjBEwXIYEcUIsvwT5X7ofFhC2XxyRpqlIWZSQAxRSSJFyupRRXzyw==", + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.7", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-net": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-net": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.7.tgz", + "integrity": "sha512-j9qeZrS1FNyCeA0BfdLojkxOZQz3FKa1DJI+Dw9fEVhZS68vLOFANu2RB96gR9BoPHo5+k5D3NsKOoxt1gw3Gg==", + "requires": { + "web3-core": "1.2.7", + "web3-core-method": "1.2.7", + "web3-utils": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-providers-http": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.0.tgz", + "integrity": "sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA==", + "requires": { + "web3-core-helpers": "1.3.0", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.0.tgz", + "integrity": "sha512-0CrLuRofR+1J38nEj4WsId/oolwQEM6Yl1sOt41S/6bNI7htdkwgVhSloFIMJMDFHtRw229QIJ6wIaKQz0X1Og==", + "requires": { + "oboe": "2.1.5", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0" + } + }, + "web3-providers-ws": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.0.tgz", + "integrity": "sha512-Im5MthhJnJst8nSoq0TgbyOdaiFQFa5r6sHPOVllhgIgViDqzbnlAFW9sNzQ0Q8VXPNfPIQKi9cOrHlSRNPjRw==", + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "websocket": "^1.0.32" + } + }, + "web3-shh": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.7.tgz", + "integrity": "sha512-f6PAgcpG0ZAo98KqCmeHoDEx5qzm3d5plet18DkT4U6WIeYowKdec8vZaLPRR7c2XreXFJ2gQf45CB7oqR7U/w==", + "requires": { + "web3-core": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-net": "1.2.7" + }, + "dependencies": { + "@types/node": { + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.7.tgz", + "integrity": "sha512-QA0MTae0gXcr3KHe3cQ4x56+Wh43ZKWfMwg1gfCc3NNxPRM1jJ8qudzyptCAUcxUGXWpDG8syLIn1APDz5J8BQ==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.7", + "web3-core-method": "1.2.7", + "web3-core-requestmanager": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-helpers": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.7.tgz", + "integrity": "sha512-bdU++9QATGeCetVrMp8pV97aQtVkN5oLBf/TWu/qumC6jK/YqrvLlBJLdwbz0QveU8zOSap6GCvJbqKvmmbV2A==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-method": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.7.tgz", + "integrity": "sha512-e1TI0QUnByDMbQ8QHwnjxfjKw0LIgVRY4TYrlPijET9ebqUJU1HCayn/BHIMpV6LKyR1fQj9EldWyT64wZQXkg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-core-promievent": "1.2.7", + "web3-core-subscriptions": "1.2.7", + "web3-utils": "1.2.7" + } + }, + "web3-core-promievent": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.7.tgz", + "integrity": "sha512-jNmsM/czCeMGQqKKwM9/HZVTJVIF96hdMVNN/V9TGvp+EEE7vDhB4pUocDnc/QF9Z/5QFBCVmvNWttlRgZmU0A==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.7.tgz", + "integrity": "sha512-HJb/txjHixu1dxIebiZQKBoJCaNu4gsh7mq/uj6Z/w6tIHbybL90s/7ADyMED353yyJ2tDWtYJqeMVAR+KtdaA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7", + "web3-providers-http": "1.2.7", + "web3-providers-ipc": "1.2.7", + "web3-providers-ws": "1.2.7" + } + }, + "web3-core-subscriptions": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.7.tgz", + "integrity": "sha512-W/CzQYOUawdMDvkgA/fmLsnG5aMpbjrs78LZMbc0MFXLpH3ofqAgO2by4QZrrTShUUTeWS0ZuEkFFL/iFrSObw==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-eth-iban": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.7.tgz", + "integrity": "sha512-2NrClz1PoQ3nSJBd+91ylCOVga9qbTxjRofq/oSCoHVAEvz3WZyttx9k5DC+0rWqwJF1h69ufFvdHAAlmN/4lg==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.7" + } + }, + "web3-providers-http": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.7.tgz", + "integrity": "sha512-vazGx5onuH/zogrwkUaLFJwFcJ6CckP65VFSHoiV+GTQdkOqgoDIha7StKkslvDz4XJ2FuY/zOZHbtuOYeltXQ==", + "requires": { + "web3-core-helpers": "1.2.7", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.7.tgz", + "integrity": "sha512-/zc0y724H2zbkV4UbGGMhsEiLfafjagIzfrsWZnyTZUlSB0OGRmmFm2EkLJAgtXrLiodaHHyXKM0vB8S24bxdA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + } + }, + "web3-providers-ws": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.7.tgz", + "integrity": "sha512-b5XzqDpRkNVe6MFs5K6iqOEyjQikHtg3KuU2/ClCDV37hm0WN4xCRVMC0LwegulbDXZej3zT9+1CYzGaGFREzA==", + "requires": { + "@web3-js/websocket": "^1.0.29", + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-utils": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.7.tgz", + "integrity": "sha512-FBh/CPJND+eiPeUF9KVbTyTZtXNWxPWtByBaWS6e2x4ACazPX711EeNaZaChIOGSLGe6se2n7kg6wnawe/MjuQ==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.0.tgz", + "integrity": "sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + }, + "websocket": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.33.tgz", + "integrity": "sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "winston": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "requires": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } +} diff --git a/examples/cactus-carbon-accounting-backend/package.json b/examples/cactus-carbon-accounting-backend/package.json new file mode 100755 index 00000000000..befc72ee679 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/package.json @@ -0,0 +1,114 @@ +{ + "name": "@hyperledger/cactus-example-carbon-accounting-backend", + "version": "0.4.1", + "description": "An example application showing how to use Cactus when implementing a supply chain application where two or more blockchains are sharing data with each other to achieve a certain business outcome beneficial to multiple parties (business organizations).", + "main": "dist/lib/main/typescript/index.js", + "mainMinified": "dist/cactus-example-carbon-accounting-backend.node.umd.min.js", + "browser": "dist/cactus-example-carbon-accounting-backend.web.umd.js", + "browserMinified": "dist/cactus-example-carbon-accounting-backend.web.umd.min.js", + "module": "dist/lib/main/typescript/index.js", + "types": "dist/types/main/typescript/index.d.ts", + "files": [ + "dist/*" + ], + "bin": "./dist/lib/main/typescript/carbon-accounting-app-cli.js", + "scripts": { + "tsc": "tsc --project ./tsconfig.json", + "pretsc": "hardhat compile", + "watch": "npm-watch", + "webpack": "npm-run-all webpack:dev webpack:prod", + "webpack:dev": "npm-run-all webpack:dev:node webpack:dev:web", + "webpack:dev:web": "webpack --env=dev --target=web --config ../../../../webpack.config.js", + "webpack:dev:node": "webpack --env=dev --target=node --config ../../../../webpack.config.js", + "webpack:prod": "npm-run-all webpack:prod:node webpack:prod:web", + "webpack:prod:web": "webpack --env=prod --target=web --config ../../../../webpack.config.js", + "webpack:prod:node": "webpack --env=prod --target=node --config ../../../../webpack.config.js" + }, + "watch": { + "tsc": { + "patterns": [ + "src/", + "src/*/json/**/openapi*" + ], + "ignore": [ + "src/**/generated/*" + ], + "extensions": [ + "ts", + "json" + ], + "quiet": true, + "verbose": false, + "runOnChangeOnly": true + } + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/hyperledger/cactus.git" + }, + "keywords": [ + "Hyperledger", + "Cactus", + "Integration", + "Blockchain", + "Distributed Ledger Technology" + ], + "author": { + "name": "Hyperledger Cactus Contributors", + "email": "cactus@lists.hyperledger.org", + "url": "https://www.hyperledger.org/use/cactus" + }, + "contributors": [ + { + "name": "Please add yourself to the list of contributors", + "email": "your.name@example.com", + "url": "https://example.com" + }, + { + "name": "Peter Somogyvari", + "email": "peter.somogyvari@accenture.com", + "url": "https://accenture.com" + } + ], + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/hyperledger/cactus/issues" + }, + "homepage": "https://github.com/hyperledger/cactus#readme", + "dependencies": { + "@hyperledger/cactus-api-client": "0.4.0", + "@hyperledger/cactus-cmd-api-server": "0.4.0", + "@hyperledger/cactus-common": "0.4.0", + "@hyperledger/cactus-core": "0.4.0", + "@hyperledger/cactus-core-api": "0.4.0", + "@hyperledger/cactus-example-supply-chain-business-logic-plugin": "0.4.0", + "@hyperledger/cactus-example-supply-chain-frontend": "0.4.0", + "@hyperledger/cactus-plugin-consortium-manual": "0.4.0", + "@hyperledger/cactus-plugin-keychain-memory": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-besu": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-fabric": "0.4.0", + "@hyperledger/cactus-plugin-ledger-connector-quorum": "0.4.0", + "@hyperledger/cactus-test-tooling": "0.4.0", + "@openzeppelin/contracts": "3.3.0", + "@openzeppelin/contracts-upgradeable": "3.4.1", + "async-exit-hook": "2.0.1", + "axios": "0.21.1", + "express": "4.17.1", + "fabric-network": "1.4.13", + "jose": "1.28.0", + "openapi-types": "7.0.1", + "solc": "0.7.1", + "typescript-optional": "2.0.1", + "uuid": "8.3.0", + "web3-core": "1.3.0" + }, + "devDependencies": { + "@types/express": "4.17.8", + "@types/uuid": "8.0.1", + "hardhat": "2.1.2" + } +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json new file mode 100644 index 00000000000..02c18d94914 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json @@ -0,0 +1,239 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControlUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json new file mode 100644 index 00000000000..26578db61b5 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC165Upgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.json new file mode 100644 index 00000000000..1f9c642fa5f --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC165Upgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.json new file mode 100644 index 00000000000..4f4e4b448d8 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol/SafeMathUpgradeable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SafeMathUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e12d78ae8a1a67a9d0ca362a0328078fd4e0392a3b3fc25ac0f9e3b53b7a31f064736f6c63430007030033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e12d78ae8a1a67a9d0ca362a0328078fd4e0392a3b3fc25ac0f9e3b53b7a31f064736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.json new file mode 100644 index 00000000000..c5bbe824dac --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/proxy/Initializable.sol/Initializable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Initializable", + "sourceName": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.json new file mode 100644 index 00000000000..15bb85f8058 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol/ERC1155Upgradeable.json @@ -0,0 +1,323 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1155Upgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611fe6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461041b578063a22cb465146105bc578063e985e9c51461060c578063f242432a1461068657610087565b8062fdd58e1461008c57806301ffc9a7146100ee5780630e89341c146101515780632eb2c2d6146101f8575b600080fd5b6100d8600480360360408110156100a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610795565b6040518082815260200191505060405180910390f35b6101396004803603602081101561010457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610875565b60405180821515815260200191505060405180910390f35b61017d6004803603602081101561016757600080fd5b81019080803590602001909291905050506108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610419600480360360a081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184602083028401116401000000008311171561029f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184602083028401116401000000008311171561033357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561039357600080fd5b8201836020820111156103a557600080fd5b803590602001918460018302840111640100000000831117156103c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610981565b005b6105656004803603604081101561043157600080fd5b810190808035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104e257600080fd5b8201836020820111156104f457600080fd5b8035906020019184602083028401116401000000008311171561051657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105a857808201518184015260208101905061058d565b505050509050019250505060405180910390f35b61060a600480360360408110156105d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f1e565b005b61066e6004803603604081101561062257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b7565b60405180821515815260200191505060405180910390f35b610793600480360360a081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561070d57600080fd5b82018360208201111561071f57600080fd5b8035906020019184600183028401116401000000008311171561074157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061114b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e62602b913960400191505060405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060678054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b50505050509050919050565b81518351146109db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f896028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b610a696114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610aaf5750610aae85610aa96114c0565b6110b7565b5b610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611edb6032913960400191505060405180910390fd5b6000610b0e6114c0565b9050610b1e8187878787876114c8565b60005b8451811015610cef576000858281518110610b3857fe5b602002602001015190506000858381518110610b5057fe5b60200260200101519050610bd7816040518060600160405280602a8152602001611f0d602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8e816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610b21565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610d9f578082015181840152602081019050610d84565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610de1578082015181840152602081019050610dc6565b5050505090500194505050505060405180910390a4610e04818787878787611612565b505050505050565b60608151835114610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f606029913960400191505060405180910390fd5b6060835167ffffffffffffffff81118015610e8257600080fd5b50604051908082528060200260200182016040528015610eb15781602001602082028036833780820191505090505b50905060005b8451811015610f1357610ef0858281518110610ecf57fe5b6020026020010151858381518110610ee357fe5b6020026020010151610795565b828281518110610efc57fe5b602002602001018181525050806001019050610eb7565b508091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff16610f3d6114c0565b73ffffffffffffffffffffffffffffffffffffffff161415610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f376029913960400191505060405180910390fd5b8060666000610fb76114c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110646114c0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b6111d96114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061121f575061121e856112196114c0565b6110b7565b5b611274576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611e8d6029913960400191505060405180910390fd5b600061127e6114c0565b905061129e81878761128f886119a1565b611298886119a1565b876114c8565b61131b836040518060600160405280602a8152602001611f0d602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113d2836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46114b8818787878787611a11565b505050505050565b600033905090565b505050505050565b600083831115829061157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611542578082015181840152602081019050611527565b50505050905090810190601f16801561156f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6116318473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611999578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156116e95780820151818401526020810190506116ce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561172b578082015181840152602081019050611710565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561176a57808201518184015260208101905061174f565b50505050905090810190601f1680156117975780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156117bc57600080fd5b505af19250505080156117f057506040513d60208110156117dc57600080fd5b810190808051906020019092919050505060015b6118fa576117fc611d4f565b8061180757506118a9565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186e578082015181840152602081019050611853565b50505050905090810190601f16801561189b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611997576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b606080600167ffffffffffffffff811180156119bc57600080fd5b506040519080825280602002602001820160405280156119eb5781602001602082028036833780820191505090505b50905082816000815181106119fc57fe5b60200260200101818152505080915050919050565b611a308473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611d16578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ae9578082015181840152602081019050611ace565b50505050905090810190601f168015611b165780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611b3957600080fd5b505af1925050508015611b6d57506040513d6020811015611b5957600080fd5b810190808051906020019092919050505060015b611c7757611b79611d4f565b80611b845750611c26565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611beb578082015181840152602081019050611bd0565b50505050905090810190601f168015611c185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d1015611d5f57611e02565b60046000803e611d70600051611d42565b6308c379a08114611d815750611e02565b60405160043d036004823e80513d602482011167ffffffffffffffff82111715611dad57505050611e02565b808201805167ffffffffffffffff811115611dcc575050505050611e02565b8060208301013d8501811115611de757505050505050611e02565b611df082611d31565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368a2646970667358221220ab9e2e7f0b402087f673eb9ca70d9e752a0526ca5477beafb784e5128e0e12a464736f6c63430007030033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461041b578063a22cb465146105bc578063e985e9c51461060c578063f242432a1461068657610087565b8062fdd58e1461008c57806301ffc9a7146100ee5780630e89341c146101515780632eb2c2d6146101f8575b600080fd5b6100d8600480360360408110156100a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610795565b6040518082815260200191505060405180910390f35b6101396004803603602081101561010457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610875565b60405180821515815260200191505060405180910390f35b61017d6004803603602081101561016757600080fd5b81019080803590602001909291905050506108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610419600480360360a081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184602083028401116401000000008311171561029f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184602083028401116401000000008311171561033357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561039357600080fd5b8201836020820111156103a557600080fd5b803590602001918460018302840111640100000000831117156103c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610981565b005b6105656004803603604081101561043157600080fd5b810190808035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104e257600080fd5b8201836020820111156104f457600080fd5b8035906020019184602083028401116401000000008311171561051657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105a857808201518184015260208101905061058d565b505050509050019250505060405180910390f35b61060a600480360360408110156105d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f1e565b005b61066e6004803603604081101561062257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b7565b60405180821515815260200191505060405180910390f35b610793600480360360a081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561070d57600080fd5b82018360208201111561071f57600080fd5b8035906020019184600183028401116401000000008311171561074157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061114b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e62602b913960400191505060405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060678054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b50505050509050919050565b81518351146109db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f896028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b610a696114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610aaf5750610aae85610aa96114c0565b6110b7565b5b610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611edb6032913960400191505060405180910390fd5b6000610b0e6114c0565b9050610b1e8187878787876114c8565b60005b8451811015610cef576000858281518110610b3857fe5b602002602001015190506000858381518110610b5057fe5b60200260200101519050610bd7816040518060600160405280602a8152602001611f0d602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8e816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610b21565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610d9f578082015181840152602081019050610d84565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610de1578082015181840152602081019050610dc6565b5050505090500194505050505060405180910390a4610e04818787878787611612565b505050505050565b60608151835114610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f606029913960400191505060405180910390fd5b6060835167ffffffffffffffff81118015610e8257600080fd5b50604051908082528060200260200182016040528015610eb15781602001602082028036833780820191505090505b50905060005b8451811015610f1357610ef0858281518110610ecf57fe5b6020026020010151858381518110610ee357fe5b6020026020010151610795565b828281518110610efc57fe5b602002602001018181525050806001019050610eb7565b508091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff16610f3d6114c0565b73ffffffffffffffffffffffffffffffffffffffff161415610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f376029913960400191505060405180910390fd5b8060666000610fb76114c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110646114c0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b6111d96114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061121f575061121e856112196114c0565b6110b7565b5b611274576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611e8d6029913960400191505060405180910390fd5b600061127e6114c0565b905061129e81878761128f886119a1565b611298886119a1565b876114c8565b61131b836040518060600160405280602a8152602001611f0d602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113d2836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46114b8818787878787611a11565b505050505050565b600033905090565b505050505050565b600083831115829061157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611542578082015181840152602081019050611527565b50505050905090810190601f16801561156f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6116318473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611999578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156116e95780820151818401526020810190506116ce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561172b578082015181840152602081019050611710565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561176a57808201518184015260208101905061174f565b50505050905090810190601f1680156117975780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156117bc57600080fd5b505af19250505080156117f057506040513d60208110156117dc57600080fd5b810190808051906020019092919050505060015b6118fa576117fc611d4f565b8061180757506118a9565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186e578082015181840152602081019050611853565b50505050905090810190601f16801561189b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611997576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b606080600167ffffffffffffffff811180156119bc57600080fd5b506040519080825280602002602001820160405280156119eb5781602001602082028036833780820191505090505b50905082816000815181106119fc57fe5b60200260200101818152505080915050919050565b611a308473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611d16578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ae9578082015181840152602081019050611ace565b50505050905090810190601f168015611b165780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611b3957600080fd5b505af1925050508015611b6d57506040513d6020811015611b5957600080fd5b810190808051906020019092919050505060015b611c7757611b79611d4f565b80611b845750611c26565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611beb578082015181840152602081019050611bd0565b50505050905090810190601f168015611c185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d1015611d5f57611e02565b60046000803e611d70600051611d42565b6308c379a08114611d815750611e02565b60405160043d036004823e80513d602482011167ffffffffffffffff82111715611dad57505050611e02565b808201805167ffffffffffffffff811115611dcc575050505050611e02565b8060208301013d8501811115611de757505050505050611e02565b611df082611d31565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368a2646970667358221220ab9e2e7f0b402087f673eb9ca70d9e752a0526ca5477beafb784e5128e0e12a464736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.json new file mode 100644 index 00000000000..1919e51ecd2 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol/IERC1155MetadataURIUpgradeable.json @@ -0,0 +1,323 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1155MetadataURIUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.json new file mode 100644 index 00000000000..898ecee63e6 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol/IERC1155ReceiverUpgradeable.json @@ -0,0 +1,108 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1155ReceiverUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.json new file mode 100644 index 00000000000..39ebe80a89f --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol/IERC1155Upgradeable.json @@ -0,0 +1,304 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1155Upgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json new file mode 100644 index 00000000000..88471b7770a --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AddressUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0dd45156f6cac53a909bc5ecbe49e330381adbe17860cb5bcede45c77183a9464736f6c63430007030033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0dd45156f6cac53a909bc5ecbe49e330381adbe17860cb5bcede45c77183a9464736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json new file mode 100644 index 00000000000..113c89e0978 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ContextUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.json new file mode 100644 index 00000000000..3bb0487c717 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CountersUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073dc71adde543ec9a0d085be4fc7d126f5ff34fe67419bf0b8bb18353695348a64736f6c63430007030033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073dc71adde543ec9a0d085be4fc7d126f5ff34fe67419bf0b8bb18353695348a64736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json new file mode 100644 index 00000000000..d0cda076766 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EnumerableSetUpgradeable", + "sourceName": "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e45397825fe2095f787bfc09ff3016d81844610f0849b40c990e79d51a3445e164736f6c63430007030033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e45397825fe2095f787bfc09ff3016d81844610f0849b40c990e79d51a3445e164736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.dbg.json new file mode 100644 index 00000000000..73b7c94bb26 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.json new file mode 100644 index 00000000000..ebe7258fb91 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/@openzeppelin/contracts/math/SafeMath.sol/SafeMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SafeMath", + "sourceName": "@openzeppelin/contracts/math/SafeMath.sol", + "abi": [], + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220066f40616b5226ec31bc7258afa913353f9705ba302e1f8238fc46175c66983d64736f6c63430007030033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220066f40616b5226ec31bc7258afa913353f9705ba302e1f8238fc46175c66983d64736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/build-info/0491b426f474e9f39ff17a1b59f43cee.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/build-info/0491b426f474e9f39ff17a1b59f43cee.json new file mode 100644 index 00000000000..5fb9aab4262 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/build-info/0491b426f474e9f39ff17a1b59f43cee.json @@ -0,0 +1,237969 @@ +{ + "id": "0491b426f474e9f39ff17a1b59f43cee", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.7.3", + "solcLongVersion": "0.7.3+commit.9bfce1f6", + "input": { + "language": "Solidity", + "sources": { + "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol": { + "content": "pragma solidity ^0.7.0;\npragma experimental ABIEncoderV2;\n// SPDX-License-Identifier: BSD-3-Clause\n\n/* Copyright 2021 Compound Labs, Inc.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */\n\n// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/Comp.sol\n// Modified to work in the NetEmissionsTokenNetwork system\n\ncontract DAOToken {\n /// @notice EIP-20 token name for this token\n string public constant name = \"Climate DAO Token\";\n\n /// @notice EIP-20 token symbol for this token\n string public constant symbol = \"dCLM8\";\n\n /// @notice EIP-20 token decimals for this token\n uint8 public constant decimals = 18;\n\n /// @notice Total number of tokens in circulation\n uint public totalSupply = 10000000e18; // 10 million dCLM8\n\n /// @notice Initial holder of all DAO tokens\n address public initialHolder;\n\n /// @notice Governor to be set after deploy for permissions to burn tokens (only set once)\n address public governor = address(0);\n\n /// @dev Allowance amounts on behalf of others\n mapping (address => mapping (address => uint96)) internal allowances;\n\n /// @dev Official record of token balances for each account\n mapping (address => uint96) internal balances;\n\n /// @notice A record of each accounts delegate\n mapping (address => address) public delegates;\n\n /// @notice A checkpoint for marking number of votes from a given block\n struct Checkpoint {\n uint32 fromBlock;\n uint96 votes;\n }\n\n /// @notice A record of votes checkpoints for each account, by index\n mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;\n\n /// @notice The number of checkpoints for each account\n mapping (address => uint32) public numCheckpoints;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 public constant DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n /// @notice The EIP-712 typehash for the delegation struct used by the contract\n bytes32 public constant DELEGATION_TYPEHASH = keccak256(\"Delegation(address delegatee,uint256 nonce,uint256 expiry)\");\n\n /// @notice A record of states for signing / validating signatures\n mapping (address => uint) public nonces;\n\n /// @notice An event thats emitted when an account changes its delegate\n event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);\n\n /// @notice An event thats emitted when a delegate account's vote balance changes\n event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);\n\n /// @notice The standard EIP-20 transfer event\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n /// @notice The standard EIP-20 approval event\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /**\n * @notice Construct a new dCLM8 token\n * @param account The initial account to grant all the tokens\n */\n constructor(address account) {\n balances[account] = uint96(totalSupply);\n initialHolder = account;\n emit Transfer(address(0), account, totalSupply);\n }\n\n /**\n * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n * @param account The address of the account holding the funds\n * @param spender The address of the account spending the funds\n * @return The number of tokens approved\n */\n function allowance(address account, address spender) external view returns (uint) {\n return allowances[account][spender];\n }\n\n /**\n * @notice Approve `spender` to transfer up to `amount` from `src`\n * @dev This will overwrite the approval amount for `spender`\n * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n * @param spender The address of the account which may transfer tokens\n * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n * @return Whether or not the approval succeeded\n */\n function approve(address spender, uint rawAmount) external returns (bool) {\n uint96 amount;\n if (rawAmount == uint(-1)) {\n amount = uint96(-1);\n } else {\n amount = safe96(rawAmount, \"dCLM8::approve: amount exceeds 96 bits\");\n }\n\n allowances[msg.sender][spender] = amount;\n\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n /**\n * @notice Get the number of tokens held by the `account`\n * @param account The address of the account to get the balance of\n * @return The number of tokens held\n */\n function balanceOf(address account) external view returns (uint) {\n return balances[account];\n }\n\n /**\n * @notice Transfer `amount` tokens from `msg.sender` to `dst`\n * @param dst The address of the destination account\n * @param rawAmount The number of tokens to transfer\n * @return Whether or not the transfer succeeded\n */\n function transfer(address dst, uint rawAmount) external returns (bool) {\n uint96 amount = safe96(rawAmount, \"dCLM8::transfer: amount exceeds 96 bits\");\n _transferTokens(msg.sender, dst, amount);\n return true;\n }\n\n /**\n * @notice Transfer `amount` tokens from `src` to `dst`\n * @param src The address of the source account\n * @param dst The address of the destination account\n * @param rawAmount The number of tokens to transfer\n * @return Whether or not the transfer succeeded\n */\n function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {\n address spender = msg.sender;\n uint96 spenderAllowance = allowances[src][spender];\n uint96 amount = safe96(rawAmount, \"dCLM8::approve: amount exceeds 96 bits\");\n\n if (spender != src && spenderAllowance != uint96(-1)) {\n uint96 newAllowance = sub96(spenderAllowance, amount, \"dCLM8::transferFrom: transfer amount exceeds spender allowance\");\n allowances[src][spender] = newAllowance;\n\n emit Approval(src, spender, newAllowance);\n }\n\n _transferTokens(src, dst, amount);\n return true;\n }\n\n /**\n * @notice Delegate votes from `msg.sender` to `delegatee`\n * @param delegatee The address to delegate votes to\n */\n function delegate(address delegatee) public {\n return _delegate(msg.sender, delegatee);\n }\n\n /**\n * @notice Delegates votes from signatory to `delegatee`\n * @param delegatee The address to delegate votes to\n * @param nonce The contract state required to match the signature\n * @param expiry The time at which to expire the signature\n * @param v The recovery byte of the signature\n * @param r Half of the ECDSA signature pair\n * @param s Half of the ECDSA signature pair\n */\n function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {\n bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));\n bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));\n bytes32 digest = keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n address signatory = ecrecover(digest, v, r, s);\n require(signatory != address(0), \"dCLM8::delegateBySig: invalid signature\");\n require(nonce == nonces[signatory]++, \"dCLM8::delegateBySig: invalid nonce\");\n require(block.timestamp <= expiry, \"dCLM8::delegateBySig: signature expired\");\n return _delegate(signatory, delegatee);\n }\n\n /**\n * @notice Gets the current votes balance for `account`\n * @param account The address to get votes balance\n * @return The number of current votes for `account`\n */\n function getCurrentVotes(address account) external view returns (uint96) {\n uint32 nCheckpoints = numCheckpoints[account];\n return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;\n }\n\n /**\n * @notice Determine the prior number of votes for an account as of a block number\n * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n * @param account The address of the account to check\n * @param blockNumber The block number to get the vote balance at\n * @return The number of votes the account had as of the given block\n */\n function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {\n require(blockNumber < block.number, \"dCLM8::getPriorVotes: not yet determined\");\n\n uint32 nCheckpoints = numCheckpoints[account];\n if (nCheckpoints == 0) {\n return 0;\n }\n\n // First check most recent balance\n if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {\n return checkpoints[account][nCheckpoints - 1].votes;\n }\n\n // Next check implicit zero balance\n if (checkpoints[account][0].fromBlock > blockNumber) {\n return 0;\n }\n\n uint32 lower = 0;\n uint32 upper = nCheckpoints - 1;\n while (upper > lower) {\n uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow\n Checkpoint memory cp = checkpoints[account][center];\n if (cp.fromBlock == blockNumber) {\n return cp.votes;\n } else if (cp.fromBlock < blockNumber) {\n lower = center;\n } else {\n upper = center - 1;\n }\n }\n return checkpoints[account][lower].votes;\n }\n\n function _burn(address account, uint96 amount) external {\n require(account != address(0), \"dCLM8::_burn: burn from the zero address\");\n require(msg.sender == governor, \"dCLM8::_burn: must be governor\");\n\n uint96 accountBalance = balances[account];\n require(accountBalance >= amount, \"dCLM8::_burn: burn amount exceeds balance\");\n balances[account] = accountBalance - amount;\n totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n }\n\n function _delegate(address delegator, address delegatee) internal {\n address currentDelegate = delegates[delegator];\n uint96 delegatorBalance = balances[delegator];\n delegates[delegator] = delegatee;\n\n emit DelegateChanged(delegator, currentDelegate, delegatee);\n\n _moveDelegates(currentDelegate, delegatee, delegatorBalance);\n }\n\n function _transferTokens(address src, address dst, uint96 amount) internal {\n require(src != address(0), \"dCLM8::_transferTokens: cannot transfer from the zero address\");\n require(dst != address(0), \"dCLM8::_transferTokens: cannot transfer to the zero address\");\n\n balances[src] = sub96(balances[src], amount, \"dCLM8::_transferTokens: transfer amount exceeds balance\");\n balances[dst] = add96(balances[dst], amount, \"dCLM8::_transferTokens: transfer amount overflows\");\n emit Transfer(src, dst, amount);\n\n // If dst address has no delgatees, automatically set to self. Otherwise, transfer to dst's delegates\n if (delegates[dst] == address(0)) {\n _delegate(dst, dst);\n } else {\n _moveDelegates(delegates[src], delegates[dst], amount);\n }\n }\n\n function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {\n if (srcRep != dstRep && amount > 0) {\n if (srcRep != address(0)) {\n uint32 srcRepNum = numCheckpoints[srcRep];\n uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;\n uint96 srcRepNew = sub96(srcRepOld, amount, \"dCLM8::_moveVotes: vote amount underflows\");\n _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);\n }\n\n if (dstRep != address(0)) {\n uint32 dstRepNum = numCheckpoints[dstRep];\n uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;\n uint96 dstRepNew = add96(dstRepOld, amount, \"dCLM8::_moveVotes: vote amount overflows\");\n _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);\n }\n }\n }\n\n function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {\n uint32 blockNumber = safe32(block.number, \"dCLM8::_writeCheckpoint: block number exceeds 32 bits\");\n\n if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {\n checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;\n } else {\n checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);\n numCheckpoints[delegatee] = nCheckpoints + 1;\n }\n\n emit DelegateVotesChanged(delegatee, oldVotes, newVotes);\n }\n\n function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {\n require(n < 2**32, errorMessage);\n return uint32(n);\n }\n\n function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {\n require(n < 2**96, errorMessage);\n return uint96(n);\n }\n\n function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {\n uint96 c = a + b;\n require(c >= a, errorMessage);\n return c;\n }\n\n function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n function getChainId() internal pure returns (uint) {\n uint256 chainId;\n assembly { chainId := chainid() }\n return chainId;\n }\n\n function getTotalSupply() external view returns (uint) {\n return totalSupply;\n }\n\n function getInitialHolder() external view returns (address) {\n return initialHolder;\n }\n\n function setGovernor(address newGovernor) public {\n require(msg.sender == initialHolder, \"dCLM8::setGovernor: must be initial holder\");\n require(governor == address(0), \"dCLM::setGovernor: governor can only be set once\");\n governor = newGovernor;\n }\n\n}\n" + }, + "src/main/solidity/net-emissions-token-network/Governance/Governor.sol": { + "content": "pragma solidity ^0.7.0;\npragma experimental ABIEncoderV2;\n// SPDX-License-Identifier: BSD-3-Clause\n\n/* Copyright 2021 Compound Labs, Inc.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */\n\n// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/GovernorAlpha.sol\n// Modified to work in the NetEmissionsTokenNetwork system\n\ncontract Governor {\n /// @notice The name of this contract\n string public constant name = \"Climate DAO Governor\";\n\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\n function quorumVotes() public view returns (uint) {\n uint initialHolderBalance = dclm8.balanceOf(dclm8.getInitialHolder());\n uint daoTokensInCirculation = dclm8.getTotalSupply() - initialHolderBalance;\n // if tokens in circulation, let sqrt(4%) of those tokens be the quorum\n if (daoTokensInCirculation != 0) {\n return sqrt(div256(daoTokensInCirculation, 25));\n }\n // otherwise, default to sqrt(4% of total supply)\n return 632455532033;\n }\n\n /// @notice The number of votes required in order for a voter to become a proposer\n function proposalThreshold() public pure returns (uint) { return 100000e18; } // 100,000 = 1% of Dclm8\n\n /// @notice The maximum number of actions that can be included in a proposal\n function proposalMaxOperations() public pure returns (uint) { return 10; } // 10 actions\n\n /// @notice The delay before voting on a proposal may take place, once proposed\n function votingDelay() public pure returns (uint) { return 1; } // 1 block\n\n /// @notice The duration of voting on a proposal, in blocks\n function votingPeriod() public pure returns (uint) { return 17280; } // ~3 days in blocks (assuming 15s blocks)\n\n /// @notice The address of the timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the DAO token\n Dclm8Interface public dclm8;\n\n /// @notice The address of the Governor Guardian\n address public guardian;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n struct Proposal {\n // @notice Unique id for looking up a proposal\n uint id;\n\n // @notice Creator of the proposal\n address proposer;\n\n // @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n\n // @notice the ordered list of target addresses for calls to be made\n address[] targets;\n\n // @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n\n // @notice The ordered list of function signatures to be called\n string[] signatures;\n\n // @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n\n // @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n\n // @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n\n // @notice Current number of votes in favor of this proposal\n uint forVotes;\n\n // @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n\n // @notice Flag marking whether the proposal has been canceled\n bool canceled;\n\n // @notice Flag marking whether the proposal has been executed\n bool executed;\n\n // @notes Description of the proposal\n string description;\n\n // @notice Receipts of ballots for the entire set of voters\n mapping (address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n // @notice Whether or not a vote has been cast\n bool hasVoted;\n\n // @notice Whether or not the voter supports the proposal\n bool support;\n\n // @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n\n /// @notice The official record of all proposals ever proposed\n mapping (uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping (address => uint) public latestProposalIds;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 public constant DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\"Ballot(uint256 proposalId,bool support)\");\n\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description);\n\n /// @notice An event emitted when a vote has been cast on a proposal\n event VoteCast(address voter, uint proposalId, bool support, uint votes);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n constructor(address timelock_, address dclm8_, address guardian_) public {\n timelock = TimelockInterface(timelock_);\n dclm8 = Dclm8Interface(dclm8_);\n guardian = guardian_;\n }\n\n function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) public returns (uint) {\n require(dclm8.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(), \"Governor::propose: proposer votes below proposal threshold\");\n require(targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, \"Governor::propose: proposal function information arity mismatch\");\n require(targets.length != 0, \"Governor::propose: must provide actions\");\n require(targets.length <= proposalMaxOperations(), \"Governor::propose: too many actions\");\n\n uint latestProposalId = latestProposalIds[msg.sender];\n if (latestProposalId != 0) {\n ProposalState proposersLatestProposalState = state(latestProposalId);\n require(proposersLatestProposalState != ProposalState.Active, \"Governor::propose: one live proposal per proposer, found an already active proposal\");\n require(proposersLatestProposalState != ProposalState.Pending, \"Governor::propose: one live proposal per proposer, found an already pending proposal\");\n }\n\n uint startBlock = add256(block.number, votingDelay());\n uint endBlock = add256(startBlock, votingPeriod());\n\n proposalCount++;\n\n Proposal storage p = proposals[proposalCount];\n p.id = proposalCount;\n p.proposer = msg.sender;\n p.eta = 0;\n p.targets = targets;\n p.values = values;\n p.signatures = signatures;\n p.calldatas = calldatas;\n p.startBlock = startBlock;\n p.endBlock = endBlock;\n p.forVotes = 0;\n p.againstVotes = 0;\n p.canceled = false;\n p.executed = false;\n p.description = description;\n\n latestProposalIds[p.proposer] = p.id;\n\n emit ProposalCreated(p.id, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description);\n return p.id;\n }\n\n function queue(uint proposalId) public {\n require(state(proposalId) == ProposalState.Succeeded, \"Governor::queue: proposal can only be queued if it is succeeded\");\n Proposal storage proposal = proposals[proposalId];\n uint eta = add256(block.timestamp, timelock.delay());\n for (uint i = 0; i < proposal.targets.length; i++) {\n _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\n }\n proposal.eta = eta;\n emit ProposalQueued(proposalId, eta);\n }\n\n function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\n require(!timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))), \"Governor::_queueOrRevert: proposal action already queued at eta\");\n timelock.queueTransaction(target, value, signature, data, eta);\n }\n\n function execute(uint proposalId) public payable {\n require(state(proposalId) == ProposalState.Queued, \"Governor::execute: proposal can only be executed if it is queued\");\n Proposal storage proposal = proposals[proposalId];\n proposal.executed = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.executeTransaction{value: proposal.values[i]}(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta);\n }\n emit ProposalExecuted(proposalId);\n }\n\n function cancel(uint proposalId) public {\n ProposalState currentState = state(proposalId);\n require(currentState != ProposalState.Executed, \"Governor::cancel: cannot cancel executed proposal\");\n\n Proposal storage proposal = proposals[proposalId];\n require(msg.sender == guardian || dclm8.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(), \"Governor::cancel: proposer above threshold\");\n\n proposal.canceled = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.cancelTransaction(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta);\n }\n\n emit ProposalCanceled(proposalId);\n }\n\n function getActions(uint proposalId) public view returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas) {\n Proposal storage p = proposals[proposalId];\n return (p.targets, p.values, p.signatures, p.calldatas);\n }\n\n function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) {\n return proposals[proposalId].receipts[voter];\n }\n\n function getDescription(uint proposalId) public view returns (string memory) {\n return proposals[proposalId].description;\n }\n\n function state(uint proposalId) public view returns (ProposalState) {\n require(proposalCount >= proposalId && proposalId > 0, \"Governor::state: invalid proposal id\");\n Proposal storage proposal = proposals[proposalId];\n if (proposal.canceled) {\n return ProposalState.Canceled;\n } else if (block.number <= proposal.startBlock) {\n return ProposalState.Pending;\n } else if (block.number <= proposal.endBlock) {\n return ProposalState.Active;\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {\n return ProposalState.Defeated;\n } else if (proposal.eta == 0) {\n return ProposalState.Succeeded;\n } else if (proposal.executed) {\n return ProposalState.Executed;\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\n return ProposalState.Expired;\n } else {\n return ProposalState.Queued;\n }\n }\n\n function castVote(uint proposalId, bool support, uint96 votes) public {\n return _castVote(msg.sender, proposalId, support, votes);\n }\n\n function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s, uint96 votes) public {\n bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\n bytes32 digest = keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n address signatory = ecrecover(digest, v, r, s);\n require(signatory != address(0), \"Governor::castVoteBySig: invalid signature\");\n return _castVote(signatory, proposalId, support, votes);\n }\n\n function _castVote(address voter, uint proposalId, bool support, uint96 votes) internal {\n require(state(proposalId) == ProposalState.Active, \"Governor::_castVote: voting is closed\");\n Proposal storage proposal = proposals[proposalId];\n Receipt storage receipt = proposal.receipts[voter];\n require(receipt.hasVoted == false, \"Governor::_castVote: voter already voted\");\n require(votes > 0, \"Governor::_castVote: no eligible votes prior to proposal start block\");\n uint96 eligibleVotes = dclm8.getPriorVotes(voter, proposal.startBlock) - receipt.votes;\n require(votes <= eligibleVotes, \"Governor::_castVote: votes exceeds eligible amount\");\n\n uint96 quadraticVote = uint96(sqrt(votes));\n\n if (support) {\n proposal.forVotes = add256(proposal.forVotes, quadraticVote);\n } else {\n proposal.againstVotes = add256(proposal.againstVotes, quadraticVote);\n }\n\n // burn used dCLM8 tokens\n dclm8._burn(voter, votes);\n\n receipt.hasVoted = true;\n receipt.support = support;\n receipt.votes = quadraticVote;\n\n emit VoteCast(voter, proposalId, support, quadraticVote);\n }\n\n function __acceptAdmin() public {\n require(msg.sender == guardian, \"Governor::__acceptAdmin: sender must be gov guardian\");\n timelock.acceptAdmin();\n }\n\n function __abdicate() public {\n require(msg.sender == guardian, \"Governor::__abdicate: sender must be gov guardian\");\n guardian = address(0);\n }\n\n function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\n require(msg.sender == guardian, \"Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian\");\n timelock.queueTransaction(address(timelock), 0, \"setPendingAdmin(address)\", abi.encode(newPendingAdmin), eta);\n }\n\n function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\n require(msg.sender == guardian, \"Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian\");\n timelock.executeTransaction(address(timelock), 0, \"setPendingAdmin(address)\", abi.encode(newPendingAdmin), eta);\n }\n\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\n uint c = a + b;\n require(c >= a, \"addition overflow\");\n return c;\n }\n\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\n require(b <= a, \"subtraction underflow\");\n return a - b;\n }\n\n function div256(uint256 a, uint256 b) internal pure returns (uint256) {\n return _div(a, b, \"division by zero\");\n }\n\n function _div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n return c;\n }\n\n function sqrt(uint x) internal pure returns (uint y) {\n uint z = (x + 1) / 2;\n y = x;\n while (z < y) {\n y = z;\n z = (x / z + z) / 2;\n }\n }\n\n function getChainId() internal pure returns (uint) {\n uint chainId;\n assembly { chainId := chainid() }\n return chainId;\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n function GRACE_PERIOD() external view returns (uint);\n function acceptAdmin() external;\n function queuedTransactions(bytes32 hash) external view returns (bool);\n function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32);\n function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external;\n function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory);\n}\n\ninterface Dclm8Interface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n function getTotalSupply() external pure returns (uint);\n function balanceOf(address account) external view returns (uint);\n function getInitialHolder() external pure returns (address);\n function _burn(address account, uint96 amount) external;\n}\n" + }, + "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol": { + "content": "pragma solidity ^0.7.0;\n// SPDX-License-Identifier: BSD-3-Clause\n\n/* Copyright 2021 Compound Labs, Inc.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */\n\n// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol\n// Modified to work in the NetEmissionsTokenNetwork system\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\ncontract Timelock {\n using SafeMath for uint;\n\n event NewAdmin(address indexed newAdmin);\n event NewPendingAdmin(address indexed newPendingAdmin);\n event NewDelay(uint indexed newDelay);\n event CancelTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n event ExecuteTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n event QueueTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta);\n\n uint public constant GRACE_PERIOD = 14 days;\n uint public constant MINIMUM_DELAY = 2 days;\n uint public constant MAXIMUM_DELAY = 30 days;\n\n address public admin;\n address public pendingAdmin;\n uint public delay;\n\n mapping (bytes32 => bool) public queuedTransactions;\n\n\n constructor(address admin_, uint delay_) {\n require(delay_ >= MINIMUM_DELAY, \"Timelock::constructor: Delay must exceed minimum delay.\");\n require(delay_ <= MAXIMUM_DELAY, \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n\n admin = admin_;\n delay = delay_;\n }\n\n fallback() external payable { }\n\n receive() external payable { }\n\n function setDelay(uint delay_) public {\n require(msg.sender == address(this), \"Timelock::setDelay: Call must come from Timelock.\");\n require(delay_ >= MINIMUM_DELAY, \"Timelock::setDelay: Delay must exceed minimum delay.\");\n require(delay_ <= MAXIMUM_DELAY, \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n delay = delay_;\n\n emit NewDelay(delay);\n }\n\n function acceptAdmin() public {\n require(msg.sender == pendingAdmin, \"Timelock::acceptAdmin: Call must come from pendingAdmin.\");\n admin = msg.sender;\n pendingAdmin = address(0);\n\n emit NewAdmin(admin);\n }\n\n function setPendingAdmin(address pendingAdmin_) public {\n require(msg.sender == address(this), \"Timelock::setPendingAdmin: Call must come from Timelock.\");\n pendingAdmin = pendingAdmin_;\n\n emit NewPendingAdmin(pendingAdmin);\n }\n\n function queueTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public returns (bytes32) {\n require(msg.sender == admin, \"Timelock::queueTransaction: Call must come from admin.\");\n require(eta >= getBlockTimestamp().add(delay), \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n queuedTransactions[txHash] = true;\n\n emit QueueTransaction(txHash, target, value, signature, data, eta);\n return txHash;\n }\n\n function cancelTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public {\n require(msg.sender == admin, \"Timelock::cancelTransaction: Call must come from admin.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n queuedTransactions[txHash] = false;\n\n emit CancelTransaction(txHash, target, value, signature, data, eta);\n }\n\n function executeTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public payable returns (bytes memory) {\n require(msg.sender == admin, \"Timelock::executeTransaction: Call must come from admin.\");\n\n bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n require(queuedTransactions[txHash], \"Timelock::executeTransaction: Transaction hasn't been queued.\");\n require(getBlockTimestamp() >= eta, \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\");\n require(getBlockTimestamp() <= eta.add(GRACE_PERIOD), \"Timelock::executeTransaction: Transaction is stale.\");\n\n queuedTransactions[txHash] = false;\n\n bytes memory callData;\n\n if (bytes(signature).length == 0) {\n callData = data;\n } else {\n callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\n }\n\n (bool success, bytes memory returnData) = target.call{value:value}(callData);\n require(success, \"Timelock::executeTransaction: Transaction execution reverted.\");\n\n emit ExecuteTransaction(txHash, target, value, signature, data, eta);\n\n return returnData;\n }\n\n function getBlockTimestamp() internal view returns (uint) {\n // solium-disable-next-line security/no-block-members\n return block.timestamp;\n }\n}\n" + }, + "@openzeppelin/contracts/math/SafeMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n" + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.7.0;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/proxy/Initializable.sol\";\n\ncontract NetEmissionsTokenNetwork is Initializable, ERC1155Upgradeable, AccessControlUpgradeable {\n\n using SafeMathUpgradeable for uint256;\n using CountersUpgradeable for CountersUpgradeable.Counter;\n\n bool public limitedMode; // disables some features like arbitrary token transfers and issuing without proposals\n address public admin; // address that has permission to register dealers, transfer in limitedMode, etc.\n address private timelock; // DAO contract that executes proposals to issue tokens after a successful vote\n\n // Generic dealer role for registering/unregistering consumers\n bytes32 public constant REGISTERED_DEALER =\n keccak256(\"REGISTERED_DEALER\");\n // Token type specific roles\n bytes32 public constant REGISTERED_REC_DEALER =\n keccak256(\"REGISTERED_REC_DEALER\");\n bytes32 public constant REGISTERED_OFFSET_DEALER =\n keccak256(\"REGISTERED_OFFSET_DEALER\");\n bytes32 public constant REGISTERED_EMISSIONS_AUDITOR =\n keccak256(\"REGISTERED_EMISSIONS_AUDITOR\");\n // Consumer role\n bytes32 public constant REGISTERED_CONSUMER =\n keccak256(\"REGISTERED_CONSUMER\");\n\n /**\n * @dev Structure of all tokens issued in this contract\n * tokenId - Auto-increments whenever new tokens are issued\n * tokenTypeId - Corresponds to the three token types:\n * 1 => Renewable Energy Certificate\n * 2 => Carbon Emissions Offset\n * 3 => Audited Emissions\n * issuer - Address of dealer issuing this token\n * issuee - Address of original issued recipient this token\n * fromDate - Unix timestamp\n * thruDate - Unix timestamp\n * dateCreated - Unix timestamp\n * automaticRetireDate - Unix timestamp\n */\n struct CarbonTokenDetails {\n uint256 tokenId;\n uint8 tokenTypeId;\n address issuer;\n address issuee;\n uint256 fromDate;\n uint256 thruDate;\n uint256 dateCreated;\n uint256 automaticRetireDate;\n string metadata;\n string manifest;\n string description;\n }\n\n // Counts number of unique token IDs (auto-incrementing)\n CountersUpgradeable.Counter private _numOfUniqueTokens;\n\n // Token metadata and retired balances\n mapping(uint256 => CarbonTokenDetails) private _tokenDetails;\n mapping(uint256 => mapping(address => uint256)) private _retiredBalances;\n\n // Events\n event TokenCreated(\n uint256 availableBalance,\n uint256 retiredBalance,\n uint256 tokenId,\n uint8 tokenTypeId,\n address indexed issuer,\n address indexed issuee,\n uint256 fromDate,\n uint256 thruDate,\n uint256 dateCreated,\n uint256 automaticRetireDate,\n string metadata,\n string manifest,\n string description\n );\n event TokenRetired(\n address indexed account,\n uint256 tokenId,\n uint256 amount\n );\n event RegisteredConsumer(address indexed account);\n event UnregisteredConsumer(address indexed account);\n event RegisteredDealer(address indexed account);\n event UnregisteredDealer(address indexed account);\n\n // Replaces constructor in OpenZeppelin Upgrades\n function initialize(address _admin) public initializer {\n\n __ERC1155_init(\"\");\n\n // Allow dealers to register consumers\n _setRoleAdmin(REGISTERED_CONSUMER, REGISTERED_DEALER);\n\n // Set-up admin\n _setupRole(DEFAULT_ADMIN_ROLE, _admin);\n _setupRole(REGISTERED_DEALER, _admin);\n _setupRole(REGISTERED_REC_DEALER, _admin);\n _setupRole(REGISTERED_OFFSET_DEALER, _admin);\n _setupRole(REGISTERED_EMISSIONS_AUDITOR, _admin);\n admin = _admin;\n\n // initialize\n timelock = address(0);\n\n limitedMode = false;\n }\n\n modifier consumerOrDealer() {\n bool isConsumer = hasRole(REGISTERED_CONSUMER, msg.sender);\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender);\n\n require(\n isConsumer || isRecDealer || isCeoDealer || isAeDealer,\n \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"\n );\n\n _;\n }\n\n modifier onlyDealer() {\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender);\n\n require(\n isRecDealer || isCeoDealer || isAeDealer,\n \"CLM8::onlyDealer: msg.sender not a dealer\"\n );\n _;\n }\n\n modifier onlyAdmin() {\n require(\n hasRole(DEFAULT_ADMIN_ROLE, msg.sender),\n \"CLM8::onlyAdmin: msg.sender not the admin\"\n );\n _;\n }\n\n /**\n * @dev returns true if the tokenId exists\n */\n function tokenExists(uint256 tokenId) private view returns (bool) {\n if (_numOfUniqueTokens.current() >= tokenId) return true;\n return false; // no matching tokenId\n }\n\n /**\n * @dev returns true if the tokenTypeId is valid\n */\n function tokenTypeIdIsValid(uint8 tokenTypeId) pure private returns (bool) {\n if ((tokenTypeId > 0) && (tokenTypeId <= 3)) {\n return true;\n }\n return false; // no matching tokenId\n }\n\n /**\n * @dev returns number of unique tokens\n */\n function getNumOfUniqueTokens() public view returns (uint256) {\n return _numOfUniqueTokens.current();\n }\n\n /**\n * @dev hook to prevent transfers from non-admin account if limitedMode is on\n */\n function _beforeTokenTransfer(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory amounts,\n bytes memory data\n )\n internal\n virtual\n override\n {\n super._beforeTokenTransfer(operator, from, to, ids, amounts, data);\n\n for (uint i = 0; i < ids.length; i++) {\n\n CarbonTokenDetails storage token = _tokenDetails[ids[i]];\n\n // disable most transfers if limitedMode is on\n if (limitedMode) {\n\n // allow retiring/burning one's tokens\n if (to == address(0)) {\n continue;\n }\n\n // for tokenType 1 and 2, only the timelock and DAO can transfer/issue\n // for tokenType 3, only emissions auditors can transfer/issue\n // (and they are automatically retired right after)\n if (token.tokenTypeId != 3) {\n require(\n operator == timelock || hasRole(DEFAULT_ADMIN_ROLE, operator),\n \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"\n );\n } else {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, operator),\n \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"\n );\n }\n }\n }\n }\n\n /**\n * @dev External function to mint an amount of a token\n * Only authorized dealer of associated token type can call this function\n * @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller\n * should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4)\n */\n function issue(\n address issuee,\n uint8 tokenTypeId,\n uint256 quantity,\n uint256 fromDate,\n uint256 thruDate,\n uint256 automaticRetireDate,\n string memory metadata,\n string memory manifest,\n string memory description\n ) public onlyDealer {\n return _issue(\n issuee,\n msg.sender,\n tokenTypeId,\n quantity,\n fromDate,\n thruDate,\n automaticRetireDate,\n metadata,\n manifest,\n description\n );\n }\n\n /**\n * @dev Issue function for DAO (on limited mode) or admin to manually pass issuer\n * Must be called from Timelock contract through a successful proposal\n * or by admin if limited mode is set to false\n */\n function issueOnBehalf(\n address issuee,\n address issuer,\n uint8 tokenTypeId,\n uint256 quantity,\n uint256 fromDate,\n uint256 thruDate,\n uint256 automaticRetireDate,\n string memory metadata,\n string memory manifest,\n string memory description\n ) public {\n\n require(\n (msg.sender == timelock) || hasRole(DEFAULT_ADMIN_ROLE, msg.sender),\n \"CLM8::issueOnBehalf: call must come from DAO or admin\"\n );\n\n return _issue(\n issuee,\n issuer,\n tokenTypeId,\n quantity,\n fromDate,\n thruDate,\n automaticRetireDate,\n metadata,\n manifest,\n description\n );\n }\n\n function _issue(\n address _issuee,\n address _issuer,\n uint8 _tokenTypeId,\n uint256 _quantity,\n uint256 _fromDate,\n uint256 _thruDate,\n uint256 _automaticRetireDate,\n string memory _metadata,\n string memory _manifest,\n string memory _description\n ) internal {\n\n require(\n tokenTypeIdIsValid(_tokenTypeId),\n \"CLM8::_issue: tokenTypeId is invalid\"\n );\n\n if (limitedMode) {\n if (_tokenTypeId == 1 || _tokenTypeId == 2 ) {\n require(\n msg.sender == timelock,\n \"CLM8::_issue(limited): msg.sender not timelock\"\n );\n require(\n hasRole(DEFAULT_ADMIN_ROLE, _issuee),\n \"CLM8::_issue(limited): issuee not admin\"\n );\n require(\n hasRole(REGISTERED_REC_DEALER, _issuer) || hasRole(REGISTERED_OFFSET_DEALER, _issuer),\n \"CLM8::_issue(limited): proposer not a registered dealer\"\n );\n } else if (_tokenTypeId == 3) {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer),\n \"CLM8::_issue(limited): issuer not a registered emissions auditor\"\n );\n }\n } else {\n if (_tokenTypeId == 1) {\n require(\n hasRole(REGISTERED_REC_DEALER, _issuer),\n \"CLM8::_issue: issuer not a registered REC dealer\"\n );\n } else if (_tokenTypeId == 2) {\n require(\n hasRole(REGISTERED_OFFSET_DEALER, _issuer),\n \"CLM8::_issue: issuer not a registered offset dealer\"\n );\n } else if (_tokenTypeId == 3) {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer),\n \"CLM8::_issue: issuer not a registered emissions auditor\"\n );\n }\n }\n\n // increment token identifier\n _numOfUniqueTokens.increment();\n\n // create token details\n CarbonTokenDetails storage tokenInfo = _tokenDetails[_numOfUniqueTokens.current()];\n\n tokenInfo.tokenId = _numOfUniqueTokens.current();\n tokenInfo.tokenTypeId = _tokenTypeId;\n tokenInfo.issuee = _issuee;\n tokenInfo.issuer = _issuer;\n tokenInfo.fromDate = _fromDate;\n tokenInfo.thruDate = _thruDate;\n tokenInfo.automaticRetireDate = _automaticRetireDate;\n tokenInfo.dateCreated = block.timestamp;\n tokenInfo.metadata = _metadata;\n tokenInfo.manifest = _manifest;\n tokenInfo.description = _description;\n\n super._mint(_issuee, _numOfUniqueTokens.current(), _quantity, \"\");\n\n // retire audited emissions on mint\n if (_tokenTypeId == 3) {\n super._burn(tokenInfo.issuee, tokenInfo.tokenId, _quantity);\n _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee] = _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee].add(_quantity);\n }\n\n // emit event with all token details and balances\n emit TokenCreated(\n _quantity,\n _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee],\n tokenInfo.tokenId,\n tokenInfo.tokenTypeId,\n tokenInfo.issuer,\n tokenInfo.issuee,\n tokenInfo.fromDate,\n tokenInfo.thruDate,\n tokenInfo.automaticRetireDate,\n tokenInfo.dateCreated,\n tokenInfo.metadata,\n tokenInfo.manifest,\n tokenInfo.description\n );\n }\n\n /**\n * @dev mints more of an existing token\n * @param to reciepient of token\n * @param tokenId token to mint more of\n * @param quantity amount to mint\n */\n function mint(address to, uint256 tokenId, uint256 quantity)\n external\n onlyAdmin\n {\n require(tokenExists(tokenId), \"CLM8::mint: tokenId does not exist\");\n require(!limitedMode, \"CLM8::mint: cannot mint new tokens in limited mode\");\n super._mint(to, tokenId, quantity, \"\");\n }\n\n /**\n * @dev returns the token name for the given token as a string value\n * @param tokenId token to check\n */\n function getTokenType(uint256 tokenId)\n external\n view\n returns (string memory)\n {\n require(tokenExists(tokenId), \"CLM8::getTokenType: tokenId does not exist\");\n CarbonTokenDetails storage token = _tokenDetails[tokenId];\n\n if (token.tokenTypeId == 1) {\n return \"Renewable Energy Certificate\";\n } else if (token.tokenTypeId == 2) {\n return \"Carbon Emissions Offset\";\n }\n return \"Audited Emissions\";\n\n }\n\n /**\n * @dev returns the retired amount on a token\n * @param tokenId token to check\n */\n function getTokenRetiredAmount(address account, uint256 tokenId)\n public\n view\n returns (uint256)\n {\n require(tokenExists(tokenId), \"CLM8::getTokenRetiredAmount: tokenId does not exist\");\n uint256 amount = _retiredBalances[tokenId][account];\n return amount;\n }\n\n /**\n * @dev sets the token to the retire state to disable transfers, mints and burns\n * @param tokenId token to set in pause state\n * Only contract owner can pause or resume tokens\n */\n function retire(\n uint256 tokenId,\n uint256 amount\n ) external consumerOrDealer {\n require(tokenExists(tokenId), \"CLM8::retire: tokenId does not exist\");\n require( (amount <= super.balanceOf(msg.sender, tokenId)), \"CLM8::retire: not enough available balance to retire\" );\n\n super._burn(msg.sender, tokenId, amount);\n _retiredBalances[tokenId][msg.sender] = _retiredBalances[tokenId][msg.sender].add(amount);\n emit TokenRetired(\n msg.sender,\n tokenId,\n amount\n );\n }\n\n /**\n * @dev returns true if Dealer's account is registered\n * @param account address of the dealer\n */\n function isDealerRegistered(address account) public view returns (bool) {\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account);\n if (isRecDealer || isCeoDealer || isAeDealer) return true;\n return false;\n }\n\n /**\n * @dev returns true if Consumers's account is registered\n * @param account address of the dealer\n */\n function isConsumerRegistered(address account) public view returns (bool) {\n return hasRole(REGISTERED_CONSUMER, account);\n }\n\n /**\n * @dev returns true if Consumers's or Dealer's account is registered\n * @param account address of the consumer/dealer\n */\n function isDealerOrConsumer(address account) private view returns (bool) {\n return (isDealerRegistered(account) || isConsumerRegistered(account));\n }\n\n /**\n * @dev Helper function for returning tuple of bools of role membership\n * @param account address to check roles\n */\n function getRoles(address account) external view returns (bool, bool, bool, bool, bool) {\n bool isAdmin = hasRole(DEFAULT_ADMIN_ROLE, account);\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account);\n bool isConsumer = hasRole(REGISTERED_CONSUMER, account);\n return (isAdmin, isRecDealer, isCeoDealer, isAeDealer, isConsumer);\n }\n\n /**\n * @dev Only contract owner can register Dealers\n * @param account address of the dealer to register\n * Only registered Dealers can transfer tokens\n */\n function registerDealer(address account, uint8 tokenTypeId)\n external\n onlyAdmin\n {\n require(tokenTypeIdIsValid(tokenTypeId), \"CLM8::registerDealer: tokenTypeId does not exist\");\n if (tokenTypeId == 1) {\n grantRole(REGISTERED_REC_DEALER, account);\n } else if (tokenTypeId == 2) {\n grantRole(REGISTERED_OFFSET_DEALER, account);\n } else {\n grantRole(REGISTERED_EMISSIONS_AUDITOR, account);\n }\n // Also grant generic dealer role for registering/unregistering consumers\n grantRole(REGISTERED_DEALER, account);\n emit RegisteredDealer(account);\n }\n\n /**\n * @dev returns true if Consumer's account is registered for the given token\n * @param account address of the consumer\n */\n function registerConsumer(address account) external onlyDealer {\n if (limitedMode) {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"CLM8::registerConsumer(limited): only admin can register consumers\");\n }\n grantRole(REGISTERED_CONSUMER, account);\n emit RegisteredConsumer(account);\n }\n\n /**\n * @dev Only contract owner can unregister Dealers\n * @param account address to be unregistered\n */\n function unregisterDealer(address account, uint8 tokenTypeId)\n external\n onlyAdmin\n {\n require(tokenTypeIdIsValid(tokenTypeId), \"CLM8::unregisterDealer: tokenTypeId does not exist\");\n if (tokenTypeId == 1) {\n super.revokeRole(REGISTERED_REC_DEALER, account);\n } else if (tokenTypeId == 2) {\n super.revokeRole(REGISTERED_OFFSET_DEALER, account);\n } else {\n super.revokeRole(REGISTERED_EMISSIONS_AUDITOR, account);\n }\n\n // If no longer a dealer of any token type, remove generic dealer role\n if (!isDealerRegistered(account)) {\n revokeRole(REGISTERED_DEALER, account);\n }\n\n emit UnregisteredDealer(account);\n }\n\n /**\n * @dev Only contract owner can unregister Consumers\n * @param account address to be unregistered\n */\n function unregisterConsumer(address account) external onlyDealer {\n if (limitedMode) {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\");\n }\n super.revokeRole(REGISTERED_CONSUMER, account);\n emit UnregisteredConsumer(account);\n }\n\n /**\n * @dev transfers the value to the 'to' account for tokenId\n * @param to recipient address\n * @param tokenId tokenId for the transfer\n * @param value amount of transfer\n * Transfer can start only when both parties are registered and the token is not paused\n * Note: Token holders can arbitrarily call safeTransferFrom() without these checks\n */\n function transfer(\n address to,\n uint256 tokenId,\n uint256 value\n ) external consumerOrDealer {\n require(tokenExists(tokenId), \"CLM8::transfer: tokenId does not exist\");\n require((msg.sender != to), \"CLM8::transfer: sender and receiver cannot be the same\");\n super.safeTransferFrom(msg.sender, to, tokenId, value, \"0x00\");\n }\n\n function setTimelock(\n address _timelock\n ) external onlyAdmin {\n timelock = _timelock;\n }\n\n function getAvailableAndRetired(address account, uint256 tokenId)\n external\n view\n returns (uint256, uint256)\n {\n uint256 available = super.balanceOf(account, tokenId);\n uint256 retired = this.getTokenRetiredAmount(account, tokenId);\n return (available, retired);\n }\n\n /**\n * @dev returns issuer of a given tokenId\n */\n function getIssuer(uint256 tokenId)\n external\n view\n returns (address)\n {\n return _tokenDetails[tokenId].issuer;\n }\n\n /**\n * @dev returns the details of a given tokenId, omitting holders\n * @param tokenId token to check\n */\n function getTokenDetails(uint256 tokenId)\n external\n view\n returns (CarbonTokenDetails memory)\n {\n return _tokenDetails[tokenId];\n }\n\n /**\n * @dev turns off or on limited mode\n * @param _limitedMode boolean value\n */\n function setLimitedMode(bool _limitedMode)\n external\n onlyAdmin\n {\n limitedMode = _limitedMode;\n }\n\n}\n" + }, + "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMathUpgradeable {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../utils/EnumerableSetUpgradeable.sol\";\nimport \"../utils/AddressUpgradeable.sol\";\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../proxy/Initializable.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable {\n function __AccessControl_init() internal initializer {\n __Context_init_unchained();\n __AccessControl_init_unchained();\n }\n\n function __AccessControl_init_unchained() internal initializer {\n }\n using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet;\n using AddressUpgradeable for address;\n\n struct RoleData {\n EnumerableSetUpgradeable.AddressSet members;\n bytes32 adminRole;\n }\n\n mapping (bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view returns (bool) {\n return _roles[role].members.contains(account);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view returns (uint256) {\n return _roles[role].members.length();\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view returns (address) {\n return _roles[role].members.at(index);\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to grant\");\n\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to revoke\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) public virtual {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);\n _roles[role].adminRole = adminRole;\n }\n\n function _grantRole(bytes32 role, address account) private {\n if (_roles[role].members.add(account)) {\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n function _revokeRole(bytes32 role, address account) private {\n if (_roles[role].members.remove(account)) {\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n uint256[49] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC1155Upgradeable.sol\";\nimport \"./IERC1155MetadataURIUpgradeable.sol\";\nimport \"./IERC1155ReceiverUpgradeable.sol\";\nimport \"../../utils/ContextUpgradeable.sol\";\nimport \"../../introspection/ERC165Upgradeable.sol\";\nimport \"../../math/SafeMathUpgradeable.sol\";\nimport \"../../utils/AddressUpgradeable.sol\";\nimport \"../../proxy/Initializable.sol\";\n\n/**\n *\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n *\n * _Available since v3.1._\n */\ncontract ERC1155Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC1155Upgradeable, IERC1155MetadataURIUpgradeable {\n using SafeMathUpgradeable for uint256;\n using AddressUpgradeable for address;\n\n // Mapping from token ID to account balances\n mapping (uint256 => mapping(address => uint256)) private _balances;\n\n // Mapping from account to operator approvals\n mapping (address => mapping(address => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /*\n * bytes4(keccak256('balanceOf(address,uint256)')) == 0x00fdd58e\n * bytes4(keccak256('balanceOfBatch(address[],uint256[])')) == 0x4e1273f4\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,uint256,bytes)')) == 0xf242432a\n * bytes4(keccak256('safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)')) == 0x2eb2c2d6\n *\n * => 0x00fdd58e ^ 0x4e1273f4 ^ 0xa22cb465 ^\n * 0xe985e9c5 ^ 0xf242432a ^ 0x2eb2c2d6 == 0xd9b67a26\n */\n bytes4 private constant _INTERFACE_ID_ERC1155 = 0xd9b67a26;\n\n /*\n * bytes4(keccak256('uri(uint256)')) == 0x0e89341c\n */\n bytes4 private constant _INTERFACE_ID_ERC1155_METADATA_URI = 0x0e89341c;\n\n /**\n * @dev See {_setURI}.\n */\n function __ERC1155_init(string memory uri_) internal initializer {\n __Context_init_unchained();\n __ERC165_init_unchained();\n __ERC1155_init_unchained(uri_);\n }\n\n function __ERC1155_init_unchained(string memory uri_) internal initializer {\n _setURI(uri_);\n\n // register the supported interfaces to conform to ERC1155 via ERC165\n _registerInterface(_INTERFACE_ID_ERC1155);\n\n // register the supported interfaces to conform to ERC1155MetadataURI via ERC165\n _registerInterface(_INTERFACE_ID_ERC1155_METADATA_URI);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256) external view virtual override returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {\n require(account != address(0), \"ERC1155: balance query for the zero address\");\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n )\n public\n view\n virtual\n override\n returns (uint256[] memory)\n {\n require(accounts.length == ids.length, \"ERC1155: accounts and ids length mismatch\");\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts[i], ids[i]);\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(_msgSender() != operator, \"ERC1155: setting approval status for self\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 id,\n uint256 amount,\n bytes memory data\n )\n public\n virtual\n override\n {\n require(to != address(0), \"ERC1155: transfer to the zero address\");\n require(\n from == _msgSender() || isApprovedForAll(from, _msgSender()),\n \"ERC1155: caller is not owner nor approved\"\n );\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);\n\n _balances[id][from] = _balances[id][from].sub(amount, \"ERC1155: insufficient balance for transfer\");\n _balances[id][to] = _balances[id][to].add(amount);\n\n emit TransferSingle(operator, from, to, id, amount);\n\n _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory amounts,\n bytes memory data\n )\n public\n virtual\n override\n {\n require(ids.length == amounts.length, \"ERC1155: ids and amounts length mismatch\");\n require(to != address(0), \"ERC1155: transfer to the zero address\");\n require(\n from == _msgSender() || isApprovedForAll(from, _msgSender()),\n \"ERC1155: transfer caller is not owner nor approved\"\n );\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, from, to, ids, amounts, data);\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids[i];\n uint256 amount = amounts[i];\n\n _balances[id][from] = _balances[id][from].sub(\n amount,\n \"ERC1155: insufficient balance for transfer\"\n );\n _balances[id][to] = _balances[id][to].add(amount);\n }\n\n emit TransferBatch(operator, from, to, ids, amounts);\n\n _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the amounts in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates `amount` tokens of token type `id`, and assigns them to `account`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual {\n require(account != address(0), \"ERC1155: mint to the zero address\");\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data);\n\n _balances[id][account] = _balances[id][account].add(amount);\n emit TransferSingle(operator, address(0), account, id, amount);\n\n _doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Requirements:\n *\n * - `ids` and `amounts` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual {\n require(to != address(0), \"ERC1155: mint to the zero address\");\n require(ids.length == amounts.length, \"ERC1155: ids and amounts length mismatch\");\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);\n\n for (uint i = 0; i < ids.length; i++) {\n _balances[ids[i]][to] = amounts[i].add(_balances[ids[i]][to]);\n }\n\n emit TransferBatch(operator, address(0), to, ids, amounts);\n\n _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);\n }\n\n /**\n * @dev Destroys `amount` tokens of token type `id` from `account`\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens of token type `id`.\n */\n function _burn(address account, uint256 id, uint256 amount) internal virtual {\n require(account != address(0), \"ERC1155: burn from the zero address\");\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), \"\");\n\n _balances[id][account] = _balances[id][account].sub(\n amount,\n \"ERC1155: burn amount exceeds balance\"\n );\n\n emit TransferSingle(operator, account, address(0), id, amount);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Requirements:\n *\n * - `ids` and `amounts` must have the same length.\n */\n function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual {\n require(account != address(0), \"ERC1155: burn from the zero address\");\n require(ids.length == amounts.length, \"ERC1155: ids and amounts length mismatch\");\n\n address operator = _msgSender();\n\n _beforeTokenTransfer(operator, account, address(0), ids, amounts, \"\");\n\n for (uint i = 0; i < ids.length; i++) {\n _balances[ids[i]][account] = _balances[ids[i]][account].sub(\n amounts[i],\n \"ERC1155: burn amount exceeds balance\"\n );\n }\n\n emit TransferBatch(operator, account, address(0), ids, amounts);\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning, as well as batched variants.\n *\n * The same hook is called on both single and batched variants. For single\n * transfers, the length of the `id` and `amount` arrays will be 1.\n *\n * Calling conditions (for each `id` and `amount` pair):\n *\n * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * of token type `id` will be transferred to `to`.\n * - When `from` is zero, `amount` tokens of token type `id` will be minted\n * for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`\n * will be burned.\n * - `from` and `to` are never both zero.\n * - `ids` and `amounts` have the same, non-zero length.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory amounts,\n bytes memory data\n )\n internal\n virtual\n { }\n\n function _doSafeTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 amount,\n bytes memory data\n )\n private\n {\n if (to.isContract()) {\n try IERC1155ReceiverUpgradeable(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {\n if (response != IERC1155ReceiverUpgradeable(to).onERC1155Received.selector) {\n revert(\"ERC1155: ERC1155Receiver rejected tokens\");\n }\n } catch Error(string memory reason) {\n revert(reason);\n } catch {\n revert(\"ERC1155: transfer to non ERC1155Receiver implementer\");\n }\n }\n }\n\n function _doSafeBatchTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory amounts,\n bytes memory data\n )\n private\n {\n if (to.isContract()) {\n try IERC1155ReceiverUpgradeable(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (bytes4 response) {\n if (response != IERC1155ReceiverUpgradeable(to).onERC1155BatchReceived.selector) {\n revert(\"ERC1155: ERC1155Receiver rejected tokens\");\n }\n } catch Error(string memory reason) {\n revert(reason);\n } catch {\n revert(\"ERC1155: transfer to non ERC1155Receiver implementer\");\n }\n }\n }\n\n function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {\n uint256[] memory array = new uint256[](1);\n array[0] = element;\n\n return array;\n }\n uint256[47] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../math/SafeMathUpgradeable.sol\";\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath}\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary CountersUpgradeable {\n using SafeMathUpgradeable for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n // The {SafeMath} overflow check can be skipped here, see the comment at the top\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.4.24 <0.8.0;\n\nimport \"../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n */\nabstract contract Initializable {\n\n /**\n * @dev Indicates that the contract has been initialized.\n */\n bool private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Modifier to protect an initializer function from being invoked twice.\n */\n modifier initializer() {\n require(_initializing || _isConstructor() || !_initialized, \"Initializable: contract is already initialized\");\n\n bool isTopLevelCall = !_initializing;\n if (isTopLevelCall) {\n _initializing = true;\n _initialized = true;\n }\n\n _;\n\n if (isTopLevelCall) {\n _initializing = false;\n }\n }\n\n /// @dev Returns true if and only if the function is running in the constructor\n function _isConstructor() private view returns (bool) {\n return !AddressUpgradeable.isContract(address(this));\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSetUpgradeable {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\nimport \"../proxy/Initializable.sol\";\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal initializer {\n __Context_init_unchained();\n }\n\n function __Context_init_unchained() internal initializer {\n }\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n uint256[50] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.2 <0.8.0;\n\nimport \"../../introspection/IERC165Upgradeable.sol\";\n\n/**\n * @dev Required interface of an ERC1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[EIP].\n *\n * _Available since v3.1._\n */\ninterface IERC1155Upgradeable is IERC165Upgradeable {\n /**\n * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the amount of tokens of token type `id` owned by `account`.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the caller.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `amount`.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `amounts` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.2 <0.8.0;\n\nimport \"./IERC1155Upgradeable.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\n *\n * _Available since v3.1._\n */\ninterface IERC1155MetadataURIUpgradeable is IERC1155Upgradeable {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../../introspection/IERC165Upgradeable.sol\";\n\n/**\n * _Available since v3.1._\n */\ninterface IERC1155ReceiverUpgradeable is IERC165Upgradeable {\n\n /**\n @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n )\n external\n returns(bytes4);\n\n /**\n @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated. To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n )\n external\n returns(bytes4);\n}\n" + }, + "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC165Upgradeable.sol\";\nimport \"../proxy/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n function __ERC165_init() internal initializer {\n __ERC165_init_unchained();\n }\n\n function __ERC165_init_unchained() internal initializer {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n uint256[49] private __gap;\n}\n" + }, + "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165Upgradeable {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.7.0;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/proxy/Initializable.sol\";\n\n// V2 example file for testing upgrades\n// This is NOT up to date or a real upgrade of NetEmissionsTokenNetwork.sol\n\ncontract NetEmissionsTokenNetworkV2 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable {\n\n using SafeMathUpgradeable for uint256;\n using CountersUpgradeable for CountersUpgradeable.Counter;\n\n bool public limitedMode; // disables some features like arbitrary token transfers and issuing without proposals\n address public admin; // address that has permission to register dealers, transfer in limitedMode, etc.\n address private timelock; // DAO contract that executes proposals to issue tokens after a successful vote\n\n // Generic dealer role for registering/unregistering consumers\n bytes32 public constant REGISTERED_DEALER =\n keccak256(\"REGISTERED_DEALER\");\n // Token type specific roles\n bytes32 public constant REGISTERED_REC_DEALER =\n keccak256(\"REGISTERED_REC_DEALER\");\n bytes32 public constant REGISTERED_OFFSET_DEALER =\n keccak256(\"REGISTERED_OFFSET_DEALER\");\n bytes32 public constant REGISTERED_EMISSIONS_AUDITOR =\n keccak256(\"REGISTERED_EMISSIONS_AUDITOR\");\n // Consumer role\n bytes32 public constant REGISTERED_CONSUMER =\n keccak256(\"REGISTERED_CONSUMER\");\n\n /**\n * @dev Structure of all tokens issued in this contract\n * tokenId - Auto-increments whenever new tokens are issued\n * tokenTypeId - Corresponds to the three token types:\n * 1 => Renewable Energy Certificate\n * 2 => Carbon Emissions Offset\n * 3 => Audited Emissions\n * issuer - Address of dealer issuing this token\n * issuee - Address of original issued recipient this token\n * fromDate - Unix timestamp\n * thruDate - Unix timestamp\n * dateCreated - Unix timestamp\n * automaticRetireDate - Unix timestamp\n */\n struct CarbonTokenDetails {\n uint256 tokenId;\n uint8 tokenTypeId;\n address issuer;\n address issuee;\n uint256 fromDate;\n uint256 thruDate;\n uint256 dateCreated;\n uint256 automaticRetireDate;\n string metadata;\n string manifest;\n string description;\n }\n\n // Counts number of unique token IDs (auto-incrementing)\n CountersUpgradeable.Counter private _numOfUniqueTokens;\n\n // Token metadata and retired balances\n mapping(uint256 => CarbonTokenDetails) private _tokenDetails;\n mapping(uint256 => mapping(address => uint256)) private _retiredBalances;\n\n address private newTestVariable;\n\n // Events\n event TokenCreated(\n uint256 availableBalance,\n uint256 retiredBalance,\n uint256 tokenId,\n uint8 tokenTypeId,\n address indexed issuer,\n address indexed issuee,\n uint256 fromDate,\n uint256 thruDate,\n uint256 dateCreated,\n uint256 automaticRetireDate,\n string metadata,\n string manifest,\n string description\n );\n event TokenRetired(\n address indexed account,\n uint256 tokenId,\n uint256 amount\n );\n event RegisteredConsumer(address indexed account);\n event UnregisteredConsumer(address indexed account);\n event RegisteredDealer(address indexed account);\n event UnregisteredDealer(address indexed account);\n\n // Replaces constructor in OpenZeppelin Upgrades\n function initialize(address _admin) public initializer {\n\n __ERC1155_init(\"\");\n\n // Allow dealers to register consumers\n _setRoleAdmin(REGISTERED_CONSUMER, REGISTERED_DEALER);\n\n // Set-up admin\n _setupRole(DEFAULT_ADMIN_ROLE, _admin);\n _setupRole(REGISTERED_DEALER, _admin);\n _setupRole(REGISTERED_REC_DEALER, _admin);\n _setupRole(REGISTERED_OFFSET_DEALER, _admin);\n _setupRole(REGISTERED_EMISSIONS_AUDITOR, _admin);\n admin = _admin;\n\n // initialize\n timelock = address(0);\n\n limitedMode = false;\n }\n\n modifier consumerOrDealer() {\n bool isConsumer = hasRole(REGISTERED_CONSUMER, msg.sender);\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender);\n\n require(\n isConsumer || isRecDealer || isCeoDealer || isAeDealer,\n \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"\n );\n\n _;\n }\n\n modifier onlyDealer() {\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender);\n\n require(\n isRecDealer || isCeoDealer || isAeDealer,\n \"CLM8::onlyDealer: msg.sender not a dealer\"\n );\n _;\n }\n\n modifier onlyAdmin() {\n require(\n hasRole(DEFAULT_ADMIN_ROLE, msg.sender),\n \"CLM8::onlyAdmin: msg.sender not the admin\"\n );\n _;\n }\n\n /**\n * @dev returns true if the tokenId exists\n */\n function tokenExists(uint256 tokenId) private view returns (bool) {\n if (_numOfUniqueTokens.current() >= tokenId) return true;\n return false; // no matching tokenId\n }\n\n /**\n * @dev returns true if the tokenTypeId is valid\n */\n function tokenTypeIdIsValid(uint8 tokenTypeId) pure private returns (bool) {\n if ((tokenTypeId > 0) && (tokenTypeId <= 3)) {\n return true;\n }\n return false; // no matching tokenId\n }\n\n /**\n * @dev returns number of unique tokens\n */\n function getNumOfUniqueTokens() public view returns (uint256) {\n return _numOfUniqueTokens.current();\n }\n\n /**\n * @dev hook to prevent transfers from non-admin account if limitedMode is on\n */\n function _beforeTokenTransfer(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory amounts,\n bytes memory data\n )\n internal\n virtual\n override\n {\n super._beforeTokenTransfer(operator, from, to, ids, amounts, data);\n\n for (uint i = 0; i < ids.length; i++) {\n\n CarbonTokenDetails storage token = _tokenDetails[ids[i]];\n\n // disable most transfers if limitedMode is on\n if (limitedMode) {\n\n // allow retiring/burning one's tokens\n if (to == address(0)) {\n continue;\n }\n\n // for tokenType 1 and 2, only the timelock and DAO can transfer/issue\n // for tokenType 3, only emissions auditors can transfer/issue\n // (and they are automatically retired right after)\n if (token.tokenTypeId != 3) {\n require(\n operator == timelock || hasRole(DEFAULT_ADMIN_ROLE, operator),\n \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"\n );\n } else {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, operator),\n \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"\n );\n }\n }\n }\n }\n\n /**\n * @dev External function to mint an amount of a token\n * Only authorized dealer of associated token type can call this function\n * @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller\n * should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4)\n */\n function issue(\n address issuee,\n uint8 tokenTypeId,\n uint256 quantity,\n uint256 fromDate,\n uint256 thruDate,\n uint256 automaticRetireDate,\n string memory metadata,\n string memory manifest,\n string memory description\n ) public onlyDealer {\n return _issue(\n issuee,\n msg.sender,\n tokenTypeId,\n quantity,\n fromDate,\n thruDate,\n automaticRetireDate,\n metadata,\n manifest,\n description\n );\n }\n\n /**\n * @dev Issue function for DAO (on limited mode) or admin to manually pass issuer\n * Must be called from Timelock contract through a successful proposal\n * or by admin if limited mode is set to false\n */\n function issueOnBehalf(\n address issuee,\n address issuer,\n uint8 tokenTypeId,\n uint256 quantity,\n uint256 fromDate,\n uint256 thruDate,\n uint256 automaticRetireDate,\n string memory metadata,\n string memory manifest,\n string memory description\n ) public {\n\n require(\n (msg.sender == timelock) || hasRole(DEFAULT_ADMIN_ROLE, msg.sender),\n \"CLM8::issueOnBehalf: call must come from DAO or admin\"\n );\n\n return _issue(\n issuee,\n issuer,\n tokenTypeId,\n quantity,\n fromDate,\n thruDate,\n automaticRetireDate,\n metadata,\n manifest,\n description\n );\n }\n\n function _issue(\n address _issuee,\n address _issuer,\n uint8 _tokenTypeId,\n uint256 _quantity,\n uint256 _fromDate,\n uint256 _thruDate,\n uint256 _automaticRetireDate,\n string memory _metadata,\n string memory _manifest,\n string memory _description\n ) internal {\n\n require(\n tokenTypeIdIsValid(_tokenTypeId),\n \"CLM8::_issue: tokenTypeId is invalid\"\n );\n\n if (limitedMode) {\n if (_tokenTypeId == 1 || _tokenTypeId == 2 ) {\n require(\n msg.sender == timelock,\n \"CLM8::_issue(limited): msg.sender not timelock\"\n );\n require(\n hasRole(DEFAULT_ADMIN_ROLE, _issuee),\n \"CLM8::_issue(limited): issuee not admin\"\n );\n require(\n hasRole(REGISTERED_REC_DEALER, _issuer) || hasRole(REGISTERED_OFFSET_DEALER, _issuer),\n \"CLM8::_issue(limited): proposer not a registered dealer\"\n );\n } else if (_tokenTypeId == 3) {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer),\n \"CLM8::_issue(limited): issuer not a registered emissions auditor\"\n );\n }\n } else {\n if (_tokenTypeId == 1) {\n require(\n hasRole(REGISTERED_REC_DEALER, _issuer),\n \"CLM8::_issue: issuer not a registered REC dealer\"\n );\n } else if (_tokenTypeId == 2) {\n require(\n hasRole(REGISTERED_OFFSET_DEALER, _issuer),\n \"CLM8::_issue: issuer not a registered offset dealer\"\n );\n } else if (_tokenTypeId == 3) {\n require(\n hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer),\n \"CLM8::_issue: issuer not a registered emissions auditor\"\n );\n }\n }\n\n // increment token identifier\n _numOfUniqueTokens.increment();\n\n // create token details\n CarbonTokenDetails storage tokenInfo = _tokenDetails[_numOfUniqueTokens.current()];\n\n tokenInfo.tokenId = _numOfUniqueTokens.current();\n tokenInfo.tokenTypeId = _tokenTypeId;\n tokenInfo.issuee = _issuee;\n tokenInfo.issuer = _issuer;\n tokenInfo.fromDate = _fromDate;\n tokenInfo.thruDate = _thruDate;\n tokenInfo.automaticRetireDate = _automaticRetireDate;\n tokenInfo.dateCreated = block.timestamp;\n tokenInfo.metadata = _metadata;\n tokenInfo.manifest = _manifest;\n tokenInfo.description = _description;\n\n super._mint(_issuee, _numOfUniqueTokens.current(), _quantity, \"\");\n\n // retire audited emissions on mint\n if (_tokenTypeId == 3) {\n super._burn(tokenInfo.issuee, tokenInfo.tokenId, _quantity);\n _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee] = _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee].add(_quantity);\n }\n\n // emit event with all token details and balances\n emit TokenCreated(\n _quantity,\n _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee],\n tokenInfo.tokenId,\n tokenInfo.tokenTypeId,\n tokenInfo.issuer,\n tokenInfo.issuee,\n tokenInfo.fromDate,\n tokenInfo.thruDate,\n tokenInfo.automaticRetireDate,\n tokenInfo.dateCreated,\n tokenInfo.metadata,\n tokenInfo.manifest,\n tokenInfo.description\n );\n }\n\n /**\n * @dev mints more of an existing token\n * @param to reciepient of token\n * @param tokenId token to mint more of\n * @param quantity amount to mint\n */\n function mint(address to, uint256 tokenId, uint256 quantity)\n external\n onlyAdmin\n {\n require(tokenExists(tokenId), \"CLM8::mint: tokenId does not exist\");\n require(!limitedMode, \"CLM8::mint: cannot mint new tokens in limited mode\");\n super._mint(to, tokenId, quantity, \"\");\n }\n\n /**\n * @dev returns the token name for the given token as a string value\n * @param tokenId token to check\n */\n function getTokenType(uint256 tokenId)\n external\n view\n returns (string memory)\n {\n require(tokenExists(tokenId), \"CLM8::getTokenType: tokenId does not exist\");\n CarbonTokenDetails storage token = _tokenDetails[tokenId];\n\n if (token.tokenTypeId == 1) {\n return \"Renewable Energy Certificate\";\n } else if (token.tokenTypeId == 2) {\n return \"Carbon Emissions Offset\";\n }\n return \"Audited Emissions\";\n\n }\n\n /**\n * @dev returns the retired amount on a token\n * @param tokenId token to check\n */\n function getTokenRetiredAmount(address account, uint256 tokenId)\n public\n view\n returns (uint256)\n {\n require(tokenExists(tokenId), \"CLM8::getTokenRetiredAmount: tokenId does not exist\");\n uint256 amount = _retiredBalances[tokenId][account];\n return amount;\n }\n\n /**\n * @dev sets the token to the retire state to disable transfers, mints and burns\n * @param tokenId token to set in pause state\n * Only contract owner can pause or resume tokens\n */\n function retire(\n uint256 tokenId,\n uint256 amount\n ) external consumerOrDealer {\n require(tokenExists(tokenId), \"CLM8::retire: tokenId does not exist\");\n require( (amount <= super.balanceOf(msg.sender, tokenId)), \"CLM8::retire: not enough available balance to retire\" );\n\n super._burn(msg.sender, tokenId, amount);\n _retiredBalances[tokenId][msg.sender] = _retiredBalances[tokenId][msg.sender].add(amount);\n emit TokenRetired(\n msg.sender,\n tokenId,\n amount\n );\n }\n\n /**\n * @dev returns true if Dealer's account is registered\n * @param account address of the dealer\n */\n function isDealerRegistered(address account) public view returns (bool) {\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account);\n if (isRecDealer || isCeoDealer || isAeDealer) return true;\n return false;\n }\n\n /**\n * @dev returns true if Consumers's account is registered\n * @param account address of the dealer\n */\n function isConsumerRegistered(address account) public view returns (bool) {\n return hasRole(REGISTERED_CONSUMER, account);\n }\n\n /**\n * @dev returns true if Consumers's or Dealer's account is registered\n * @param account address of the consumer/dealer\n */\n function isDealerOrConsumer(address account) private view returns (bool) {\n return (isDealerRegistered(account) || isConsumerRegistered(account));\n }\n\n /**\n * @dev Helper function for returning tuple of bools of role membership\n * @param account address to check roles\n */\n function getRoles(address account) external view returns (bool, bool, bool, bool, bool) {\n bool isAdmin = hasRole(DEFAULT_ADMIN_ROLE, account);\n bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account);\n bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account);\n bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account);\n bool isConsumer = hasRole(REGISTERED_CONSUMER, account);\n return (isAdmin, isRecDealer, isCeoDealer, isAeDealer, isConsumer);\n }\n\n /**\n * @dev Only contract owner can register Dealers\n * @param account address of the dealer to register\n * Only registered Dealers can transfer tokens\n */\n function registerDealer(address account, uint8 tokenTypeId)\n external\n onlyAdmin\n {\n require(tokenTypeIdIsValid(tokenTypeId), \"CLM8::registerDealer: tokenTypeId does not exist\");\n if (tokenTypeId == 1) {\n grantRole(REGISTERED_REC_DEALER, account);\n } else if (tokenTypeId == 2) {\n grantRole(REGISTERED_OFFSET_DEALER, account);\n } else {\n grantRole(REGISTERED_EMISSIONS_AUDITOR, account);\n }\n // Also grant generic dealer role for registering/unregistering consumers\n grantRole(REGISTERED_DEALER, account);\n emit RegisteredDealer(account);\n }\n\n /**\n * @dev returns true if Consumer's account is registered for the given token\n * @param account address of the consumer\n */\n function registerConsumer(address account) external onlyDealer {\n if (limitedMode) {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"CLM8::registerConsumer(limited): only admin can register consumers\");\n }\n grantRole(REGISTERED_CONSUMER, account);\n emit RegisteredConsumer(account);\n }\n\n /**\n * @dev Only contract owner can unregister Dealers\n * @param account address to be unregistered\n */\n function unregisterDealer(address account, uint8 tokenTypeId)\n external\n onlyAdmin\n {\n require(tokenTypeIdIsValid(tokenTypeId), \"CLM8::unregisterDealer: tokenTypeId does not exist\");\n if (tokenTypeId == 1) {\n super.revokeRole(REGISTERED_REC_DEALER, account);\n } else if (tokenTypeId == 2) {\n super.revokeRole(REGISTERED_OFFSET_DEALER, account);\n } else {\n super.revokeRole(REGISTERED_EMISSIONS_AUDITOR, account);\n }\n\n // If no longer a dealer of any token type, remove generic dealer role\n if (!isDealerRegistered(account)) {\n revokeRole(REGISTERED_DEALER, account);\n }\n\n emit UnregisteredDealer(account);\n }\n\n /**\n * @dev Only contract owner can unregister Consumers\n * @param account address to be unregistered\n */\n function unregisterConsumer(address account) external onlyDealer {\n if (limitedMode) {\n require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\");\n }\n super.revokeRole(REGISTERED_CONSUMER, account);\n emit UnregisteredConsumer(account);\n }\n\n /**\n * @dev transfers the value to the 'to' account for tokenId\n * @param to recipient address\n * @param tokenId tokenId for the transfer\n * @param value amount of transfer\n * Transfer can start only when both parties are registered and the token is not paused\n * Note: Token holders can arbitrarily call safeTransferFrom() without these checks\n */\n function transfer(\n address to,\n uint256 tokenId,\n uint256 value\n ) external consumerOrDealer {\n require(tokenExists(tokenId), \"CLM8::transfer: tokenId does not exist\");\n require((msg.sender != to), \"CLM8::transfer: sender and receiver cannot be the same\");\n super.safeTransferFrom(msg.sender, to, tokenId, value, \"0x00\");\n }\n\n function setTimelock(\n address _timelock\n ) external onlyAdmin {\n timelock = _timelock;\n }\n\n function getAvailableAndRetired(address account, uint256 tokenId)\n external\n view\n returns (uint256, uint256)\n {\n uint256 available = super.balanceOf(account, tokenId);\n uint256 retired = this.getTokenRetiredAmount(account, tokenId);\n return (available, retired);\n }\n\n /**\n * @dev returns issuer of a given tokenId\n */\n function getIssuer(uint256 tokenId)\n external\n view\n returns (address)\n {\n return _tokenDetails[tokenId].issuer;\n }\n\n /**\n * @dev returns the details of a given tokenId, omitting holders\n * @param tokenId token to check\n */\n function getTokenDetails(uint256 tokenId)\n external\n view\n returns (CarbonTokenDetails memory)\n {\n return _tokenDetails[tokenId];\n }\n\n /**\n * @dev turns off or on limited mode\n * @param _limitedMode boolean value\n */\n function setLimitedMode(bool _limitedMode)\n external\n onlyAdmin\n {\n limitedMode = _limitedMode;\n }\n\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "contracts": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "AccessControlUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "getRoleMember(bytes32,uint256)": "9010d07c", + "getRoleMemberCount(bytes32)": "ca15c873", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol": { + "ERC165Upgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol": { + "IERC165Upgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol": { + "SafeMathUpgradeable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e12d78ae8a1a67a9d0ca362a0328078fd4e0392a3b3fc25ac0f9e3b53b7a31f064736f6c63430007030033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 0x2D PUSH25 0xAE8A1A67A9D0CA362A0328078FD4E0392A3B3FC25AC0F9E3B5 EXTCODESIZE PUSH27 0x31F064736F6C634300070300330000000000000000000000000000 ", + "sourceMap": "630:6605:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e12d78ae8a1a67a9d0ca362a0328078fd4e0392a3b3fc25ac0f9e3b53b7a31f064736f6c63430007030033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 0x2D PUSH25 0xAE8A1A67A9D0CA362A0328078FD4E0392A3B3FC25AC0F9E3B5 EXTCODESIZE PUSH27 0x31F064736F6C634300070300330000000000000000000000000000 ", + "sourceMap": "630:6605:3:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol": { + "Initializable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol": { + "ERC1155Upgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50611fe6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461041b578063a22cb465146105bc578063e985e9c51461060c578063f242432a1461068657610087565b8062fdd58e1461008c57806301ffc9a7146100ee5780630e89341c146101515780632eb2c2d6146101f8575b600080fd5b6100d8600480360360408110156100a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610795565b6040518082815260200191505060405180910390f35b6101396004803603602081101561010457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610875565b60405180821515815260200191505060405180910390f35b61017d6004803603602081101561016757600080fd5b81019080803590602001909291905050506108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610419600480360360a081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184602083028401116401000000008311171561029f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184602083028401116401000000008311171561033357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561039357600080fd5b8201836020820111156103a557600080fd5b803590602001918460018302840111640100000000831117156103c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610981565b005b6105656004803603604081101561043157600080fd5b810190808035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104e257600080fd5b8201836020820111156104f457600080fd5b8035906020019184602083028401116401000000008311171561051657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105a857808201518184015260208101905061058d565b505050509050019250505060405180910390f35b61060a600480360360408110156105d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f1e565b005b61066e6004803603604081101561062257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b7565b60405180821515815260200191505060405180910390f35b610793600480360360a081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561070d57600080fd5b82018360208201111561071f57600080fd5b8035906020019184600183028401116401000000008311171561074157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061114b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e62602b913960400191505060405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060678054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b50505050509050919050565b81518351146109db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f896028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b610a696114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610aaf5750610aae85610aa96114c0565b6110b7565b5b610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611edb6032913960400191505060405180910390fd5b6000610b0e6114c0565b9050610b1e8187878787876114c8565b60005b8451811015610cef576000858281518110610b3857fe5b602002602001015190506000858381518110610b5057fe5b60200260200101519050610bd7816040518060600160405280602a8152602001611f0d602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8e816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610b21565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610d9f578082015181840152602081019050610d84565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610de1578082015181840152602081019050610dc6565b5050505090500194505050505060405180910390a4610e04818787878787611612565b505050505050565b60608151835114610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f606029913960400191505060405180910390fd5b6060835167ffffffffffffffff81118015610e8257600080fd5b50604051908082528060200260200182016040528015610eb15781602001602082028036833780820191505090505b50905060005b8451811015610f1357610ef0858281518110610ecf57fe5b6020026020010151858381518110610ee357fe5b6020026020010151610795565b828281518110610efc57fe5b602002602001018181525050806001019050610eb7565b508091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff16610f3d6114c0565b73ffffffffffffffffffffffffffffffffffffffff161415610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f376029913960400191505060405180910390fd5b8060666000610fb76114c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110646114c0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b6111d96114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061121f575061121e856112196114c0565b6110b7565b5b611274576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611e8d6029913960400191505060405180910390fd5b600061127e6114c0565b905061129e81878761128f886119a1565b611298886119a1565b876114c8565b61131b836040518060600160405280602a8152602001611f0d602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113d2836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46114b8818787878787611a11565b505050505050565b600033905090565b505050505050565b600083831115829061157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611542578082015181840152602081019050611527565b50505050905090810190601f16801561156f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6116318473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611999578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156116e95780820151818401526020810190506116ce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561172b578082015181840152602081019050611710565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561176a57808201518184015260208101905061174f565b50505050905090810190601f1680156117975780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156117bc57600080fd5b505af19250505080156117f057506040513d60208110156117dc57600080fd5b810190808051906020019092919050505060015b6118fa576117fc611d4f565b8061180757506118a9565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186e578082015181840152602081019050611853565b50505050905090810190601f16801561189b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611997576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b606080600167ffffffffffffffff811180156119bc57600080fd5b506040519080825280602002602001820160405280156119eb5781602001602082028036833780820191505090505b50905082816000815181106119fc57fe5b60200260200101818152505080915050919050565b611a308473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611d16578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ae9578082015181840152602081019050611ace565b50505050905090810190601f168015611b165780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611b3957600080fd5b505af1925050508015611b6d57506040513d6020811015611b5957600080fd5b810190808051906020019092919050505060015b611c7757611b79611d4f565b80611b845750611c26565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611beb578082015181840152602081019050611bd0565b50505050905090810190601f168015611c185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d1015611d5f57611e02565b60046000803e611d70600051611d42565b6308c379a08114611d815750611e02565b60405160043d036004823e80513d602482011167ffffffffffffffff82111715611dad57505050611e02565b808201805167ffffffffffffffff811115611dcc575050505050611e02565b8060208301013d8501811115611de757505050505050611e02565b611df082611d31565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368a2646970667358221220ab9e2e7f0b402087f673eb9ca70d9e752a0526ca5477beafb784e5128e0e12a464736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FE6 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 0x87 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x60C JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x686 JUMPI PUSH2 0x87 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x139 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x875 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1EA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x981 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x565 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xE0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5A8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x58D JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x60A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF1E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x66E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x793 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x71F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x114B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x81C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E62 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x975 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x94A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x975 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 0x958 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x9DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F89 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EB6 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA69 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xAAF JUMPI POP PUSH2 0xAAE DUP6 PUSH2 0xAA9 PUSH2 0x14C0 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST JUMPDEST PUSH2 0xB04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EDB PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB0E PUSH2 0x14C0 JUMP JUMPDEST SWAP1 POP PUSH2 0xB1E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x14C8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xCEF JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB38 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB50 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xBD7 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F0D PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xC8E DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x158A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xB21 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD9F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD84 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP4 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xDE1 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDC6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE04 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1612 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xE68 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F60 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xE82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEB1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xF13 JUMPI PUSH2 0xEF0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xECF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x795 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xF3D PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F37 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0xFB7 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1064 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EB6 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11D9 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x121F JUMPI POP PUSH2 0x121E DUP6 PUSH2 0x1219 PUSH2 0x14C0 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST JUMPDEST PUSH2 0x1274 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E8D PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x127E PUSH2 0x14C0 JUMP JUMPDEST SWAP1 POP PUSH2 0x129E DUP2 DUP8 DUP8 PUSH2 0x128F DUP9 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x1298 DUP9 PUSH2 0x19A1 JUMP JUMPDEST DUP8 PUSH2 0x14C8 JUMP JUMPDEST PUSH2 0x131B DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F0D PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x13D2 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x158A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14B8 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1A11 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x157D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1542 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x156F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1608 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1631 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D1E JUMP JUMPDEST ISZERO PUSH2 0x1999 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 SUB DUP5 MSTORE DUP8 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16E9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x16CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP5 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x172B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1710 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP5 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x176A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x174F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1797 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x17F0 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x1 JUMPDEST PUSH2 0x18FA JUMPI PUSH2 0x17FC PUSH2 0x1D4F JUMP JUMPDEST DUP1 PUSH2 0x1807 JUMPI POP PUSH2 0x18A9 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1853 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E06 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1997 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E3A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x19BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x19EB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19FC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A30 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D1E JUMP JUMPDEST ISZERO PUSH2 0x1D16 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1AE9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1ACE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1B16 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B6D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x1 JUMPDEST PUSH2 0x1C77 JUMPI PUSH2 0x1B79 PUSH2 0x1D4F JUMP JUMPDEST DUP1 PUSH2 0x1B84 JUMPI POP PUSH2 0x1C26 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BEB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BD0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C18 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E06 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1D14 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E3A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x1D5F JUMPI PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x1D70 PUSH1 0x0 MLOAD PUSH2 0x1D42 JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x1D81 JUMPI POP PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DAD JUMPI POP POP POP PUSH2 0x1E02 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DCC JUMPI POP POP POP POP POP PUSH2 0x1E02 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x1DE7 JUMPI POP POP POP POP POP POP PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x1DF0 DUP3 PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F206E6F6E20455243313135 CALLDATALOAD MSTORE PUSH6 0x636569766572 KECCAK256 PUSH10 0x6D706C656D656E746572 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD MSTORE PUSH6 0x636569766572 KECCAK256 PUSH19 0x656A656374656420746F6B656E734552433131 CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x616C61 PUSH15 0x636520717565727920666F72207468 PUSH6 0x207A65726F20 PUSH2 0x6464 PUSH19 0x657373455243313135353A2063616C6C657220 PUSH10 0x73206E6F74206F776E65 PUSH19 0x206E6F7220617070726F766564455243313135 CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E736665722063616C6C6572206973206E6F74 KECCAK256 PUSH16 0x776E6572206E6F7220617070726F7665 PUSH5 0x4552433131 CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH20 0x657474696E6720617070726F76616C2073746174 PUSH22 0x7320666F722073656C66455243313135353A20616363 PUSH16 0x756E747320616E6420696473206C656E PUSH8 0x7468206D69736D61 PUSH21 0x6368455243313135353A2069647320616E6420616D PUSH16 0x756E7473206C656E677468206D69736D PUSH2 0x7463 PUSH9 0xA26469706673582212 KECCAK256 0xAB SWAP15 0x2E PUSH32 0xB402087F673EB9CA70D9E752A0526CA5477BEAFB784E5128E0E12A464736F6C PUSH4 0x43000703 STOP CALLER ", + "sourceMap": "639:14088:5:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1063:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "55:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "65:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "83:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "90:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "79:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "79:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "99:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "95:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "95:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "75:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "75:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "65:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "48:6:19", + "type": "" + } + ], + "src": "7:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "168:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "178:36:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "203:3:19", + "type": "", + "value": "224" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "208:5:19" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "199:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "199:15:19" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "178:8:19" + } + ] + } + ] + }, + "name": "shift_right_224_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "149:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "159:8:19", + "type": "" + } + ], + "src": "115:106:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "270:790:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "310:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "312:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "286:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "286:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "304:4:19", + "type": "", + "value": "0x44" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "283:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "283:26:19" + }, + "nodeType": "YulIf", + "src": "280:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "344:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "347:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "350:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "329:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "329:23:19" + }, + "nodeType": "YulExpressionStatement", + "src": "329:23:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "361:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "397:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "397:8:19" + } + ], + "functionName": { + "name": "shift_right_224_unsigned", + "nodeType": "YulIdentifier", + "src": "372:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "372:34:19" + }, + "variables": [ + { + "name": "sig", + "nodeType": "YulTypedName", + "src": "365:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "446:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "448:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "sig", + "nodeType": "YulIdentifier", + "src": "428:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "433:10:19", + "type": "", + "value": "0x08c379a0" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "425:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "425:19:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "418:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "418:27:19" + }, + "nodeType": "YulIf", + "src": "415:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "465:21:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "483:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "477:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "477:9:19" + }, + "variables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "469:4:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "510:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "516:1:19", + "type": "", + "value": "4" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "523:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "523:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "541:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "519:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "519:24:19" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "495:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "495:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "495:49:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "554:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "574:4:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "568:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "568:11:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "558:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "705:29:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "719:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "610:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "618:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "607:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "607:30:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "658:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "666:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "654:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "654:17:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "673:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "673:16:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "651:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "651:39:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "591:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "591:113:19" + }, + "nodeType": "YulIf", + "src": "588:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "744:28:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "759:4:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "765:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "755:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "755:17:19" + }, + "variables": [ + { + "name": "msg", + "nodeType": "YulTypedName", + "src": "748:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "781:24:19", + "value": { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "801:3:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "795:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "795:10:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "785:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "848:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "850:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "820:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "828:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "817:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "817:30:19" + }, + "nodeType": "YulIf", + "src": "814:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "867:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "886:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "891:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "882:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "882:14:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "898:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "878:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "878:27:19" + }, + "variables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "871:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "954:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "956:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "920:3:19" + }, + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "929:4:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "935:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "935:16:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "925:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "925:27:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "917:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "917:36:19" + }, + "nodeType": "YulIf", + "src": "914:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "980:2:19", + "type": "", + "value": "64" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "992:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "997:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "988:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "988:14:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1026:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1004:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "1004:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "984:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "984:50:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "973:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "973:62:19" + }, + "nodeType": "YulExpressionStatement", + "src": "973:62:19" + }, + { + "nodeType": "YulAssignment", + "src": "1044:10:19", + "value": { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "1051:3:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1044:3:19" + } + ] + } + ] + }, + "name": "try_decode_error_message", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "266:3:19", + "type": "" + } + ], + "src": "227:833:19" + } + ] + }, + "contents": "{\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function shift_right_224_unsigned(value) -> newValue {\n newValue :=\n\n shr(224, value)\n\n }\n\n function try_decode_error_message() -> ret {\n if lt(returndatasize(), 0x44) { leave }\n\n returndatacopy(0, 0, 4)\n let sig := shift_right_224_unsigned(mload(0))\n if iszero(eq(sig, 0x08c379a0)) { leave }\n\n let data := mload(64)\n returndatacopy(data, 4, sub(returndatasize(), 4))\n\n let offset := mload(data)\n if or(\n gt(offset, 0xffffffffffffffff),\n gt(add(offset, 0x24), returndatasize())\n ) {\n leave\n }\n\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, 0xffffffffffffffff) { leave }\n\n let end := add(add(msg, 0x20), length)\n if gt(end, add(data, returndatasize())) { leave }\n\n mstore(64, add(add(msg, 0x20), round_up_to_mul_of_32(length)))\n ret := msg\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461041b578063a22cb465146105bc578063e985e9c51461060c578063f242432a1461068657610087565b8062fdd58e1461008c57806301ffc9a7146100ee5780630e89341c146101515780632eb2c2d6146101f8575b600080fd5b6100d8600480360360408110156100a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610795565b6040518082815260200191505060405180910390f35b6101396004803603602081101561010457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610875565b60405180821515815260200191505060405180910390f35b61017d6004803603602081101561016757600080fd5b81019080803590602001909291905050506108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610419600480360360a081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184602083028401116401000000008311171561029f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184602083028401116401000000008311171561033357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561039357600080fd5b8201836020820111156103a557600080fd5b803590602001918460018302840111640100000000831117156103c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610981565b005b6105656004803603604081101561043157600080fd5b810190808035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184602083028401116401000000008311171561048257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104e257600080fd5b8201836020820111156104f457600080fd5b8035906020019184602083028401116401000000008311171561051657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105a857808201518184015260208101905061058d565b505050509050019250505060405180910390f35b61060a600480360360408110156105d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f1e565b005b61066e6004803603604081101561062257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b7565b60405180821515815260200191505060405180910390f35b610793600480360360a081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561070d57600080fd5b82018360208201111561071f57600080fd5b8035906020019184600183028401116401000000008311171561074157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061114b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e62602b913960400191505060405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060678054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b50505050509050919050565b81518351146109db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f896028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b610a696114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610aaf5750610aae85610aa96114c0565b6110b7565b5b610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611edb6032913960400191505060405180910390fd5b6000610b0e6114c0565b9050610b1e8187878787876114c8565b60005b8451811015610cef576000858281518110610b3857fe5b602002602001015190506000858381518110610b5057fe5b60200260200101519050610bd7816040518060600160405280602a8152602001611f0d602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8e816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610b21565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610d9f578082015181840152602081019050610d84565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610de1578082015181840152602081019050610dc6565b5050505090500194505050505060405180910390a4610e04818787878787611612565b505050505050565b60608151835114610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f606029913960400191505060405180910390fd5b6060835167ffffffffffffffff81118015610e8257600080fd5b50604051908082528060200260200182016040528015610eb15781602001602082028036833780820191505090505b50905060005b8451811015610f1357610ef0858281518110610ecf57fe5b6020026020010151858381518110610ee357fe5b6020026020010151610795565b828281518110610efc57fe5b602002602001018181525050806001019050610eb7565b508091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff16610f3d6114c0565b73ffffffffffffffffffffffffffffffffffffffff161415610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f376029913960400191505060405180910390fd5b8060666000610fb76114c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110646114c0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156111d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611eb66025913960400191505060405180910390fd5b6111d96114c0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061121f575061121e856112196114c0565b6110b7565b5b611274576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611e8d6029913960400191505060405180910390fd5b600061127e6114c0565b905061129e81878761128f886119a1565b611298886119a1565b876114c8565b61131b836040518060600160405280602a8152602001611f0d602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d09092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113d2836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158a90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a46114b8818787878787611a11565b505050505050565b600033905090565b505050505050565b600083831115829061157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611542578082015181840152602081019050611527565b50505050905090810190601f16801561156f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6116318473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611999578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156116e95780820151818401526020810190506116ce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561172b578082015181840152602081019050611710565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561176a57808201518184015260208101905061174f565b50505050905090810190601f1680156117975780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156117bc57600080fd5b505af19250505080156117f057506040513d60208110156117dc57600080fd5b810190808051906020019092919050505060015b6118fa576117fc611d4f565b8061180757506118a9565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186e578082015181840152602081019050611853565b50505050905090810190601f16801561189b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611997576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b606080600167ffffffffffffffff811180156119bc57600080fd5b506040519080825280602002602001820160405280156119eb5781602001602082028036833780820191505090505b50905082816000815181106119fc57fe5b60200260200101818152505080915050919050565b611a308473ffffffffffffffffffffffffffffffffffffffff16611d1e565b15611d16578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ae9578082015181840152602081019050611ace565b50505050905090810190601f168015611b165780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611b3957600080fd5b505af1925050508015611b6d57506040513d6020811015611b5957600080fd5b810190808051906020019092919050505060015b611c7757611b79611d4f565b80611b845750611c26565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611beb578082015181840152602081019050611bd0565b50505050905090810190601f168015611c185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611e066034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611e3a6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d1015611d5f57611e02565b60046000803e611d70600051611d42565b6308c379a08114611d815750611e02565b60405160043d036004823e80513d602482011167ffffffffffffffff82111715611dad57505050611e02565b808201805167ffffffffffffffff811115611dcc575050505050611e02565b8060208301013d8501811115611de757505050505050611e02565b611df082611d31565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368a2646970667358221220ab9e2e7f0b402087f673eb9ca70d9e752a0526ca5477beafb784e5128e0e12a464736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x87 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x60C JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x686 JUMPI PUSH2 0x87 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x139 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x875 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1EA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x981 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x565 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 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 PUSH1 0x20 MUL 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xE0C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5A8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x58D JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x60A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF1E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x66E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x793 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x71F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x114B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x81C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E62 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x975 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x94A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x975 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 0x958 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x9DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F89 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EB6 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA69 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xAAF JUMPI POP PUSH2 0xAAE DUP6 PUSH2 0xAA9 PUSH2 0x14C0 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST JUMPDEST PUSH2 0xB04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x32 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EDB PUSH1 0x32 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB0E PUSH2 0x14C0 JUMP JUMPDEST SWAP1 POP PUSH2 0xB1E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x14C8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xCEF JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB38 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB50 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xBD7 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F0D PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xC8E DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x158A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xB21 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD9F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD84 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP4 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xDE1 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDC6 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0xE04 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1612 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xE68 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F60 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xE82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEB1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xF13 JUMPI PUSH2 0xEF0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xECF JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xEE3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x795 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xEFC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xF3D PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F37 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0xFB7 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1064 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1EB6 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11D9 PUSH2 0x14C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x121F JUMPI POP PUSH2 0x121E DUP6 PUSH2 0x1219 PUSH2 0x14C0 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST JUMPDEST PUSH2 0x1274 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E8D PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x127E PUSH2 0x14C0 JUMP JUMPDEST SWAP1 POP PUSH2 0x129E DUP2 DUP8 DUP8 PUSH2 0x128F DUP9 PUSH2 0x19A1 JUMP JUMPDEST PUSH2 0x1298 DUP9 PUSH2 0x19A1 JUMP JUMPDEST DUP8 PUSH2 0x14C8 JUMP JUMPDEST PUSH2 0x131B DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F0D PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x14D0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x13D2 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x158A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x14B8 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1A11 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x157D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1542 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1527 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x156F JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1608 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1631 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D1E JUMP JUMPDEST ISZERO PUSH2 0x1999 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 SUB DUP5 MSTORE DUP8 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16E9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x16CE JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP5 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x172B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1710 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP5 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x176A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x174F JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1797 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x17F0 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x1 JUMPDEST PUSH2 0x18FA JUMPI PUSH2 0x17FC PUSH2 0x1D4F JUMP JUMPDEST DUP1 PUSH2 0x1807 JUMPI POP PUSH2 0x18A9 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x186E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1853 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E06 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1997 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E3A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x19BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x19EB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19FC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A30 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1D1E JUMP JUMPDEST ISZERO PUSH2 0x1D16 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1AE9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1ACE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1B16 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B6D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1B59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x1 JUMPDEST PUSH2 0x1C77 JUMPI PUSH2 0x1B79 PUSH2 0x1D4F JUMP JUMPDEST DUP1 PUSH2 0x1B84 JUMPI POP PUSH2 0x1C26 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1BEB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BD0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1C18 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E06 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1D14 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1E3A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x1D5F JUMPI PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x1D70 PUSH1 0x0 MLOAD PUSH2 0x1D42 JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x1D81 JUMPI POP PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1DAD JUMPI POP POP POP PUSH2 0x1E02 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DCC JUMPI POP POP POP POP POP PUSH2 0x1E02 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x1DE7 JUMPI POP POP POP POP POP POP PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x1DF0 DUP3 PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F206E6F6E20455243313135 CALLDATALOAD MSTORE PUSH6 0x636569766572 KECCAK256 PUSH10 0x6D706C656D656E746572 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD MSTORE PUSH6 0x636569766572 KECCAK256 PUSH19 0x656A656374656420746F6B656E734552433131 CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x616C61 PUSH15 0x636520717565727920666F72207468 PUSH6 0x207A65726F20 PUSH2 0x6464 PUSH19 0x657373455243313135353A2063616C6C657220 PUSH10 0x73206E6F74206F776E65 PUSH19 0x206E6F7220617070726F766564455243313135 CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH21 0x72616E736665722063616C6C6572206973206E6F74 KECCAK256 PUSH16 0x776E6572206E6F7220617070726F7665 PUSH5 0x4552433131 CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH20 0x657474696E6720617070726F76616C2073746174 PUSH22 0x7320666F722073656C66455243313135353A20616363 PUSH16 0x756E747320616E6420696473206C656E PUSH8 0x7468206D69736D61 PUSH21 0x6368455243313135353A2069647320616E6420616D PUSH16 0x756E7473206C656E677468206D69736D PUSH2 0x7463 PUSH9 0xA26469706673582212 KECCAK256 0xAB SWAP15 0x2E PUSH32 0xB402087F673EB9CA70D9E752A0526CA5477BEAFB784E5128E0E12A464736F6C PUSH4 0x43000703 STOP CALLER ", + "sourceMap": "639:14088:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3409:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1176:148:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3162:105:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5967:1184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3794:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4392:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4765:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4998:897;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3409:228;3495:7;3541:1;3522:21;;:7;:21;;;;3514:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3608:9;:13;3618:2;3608:13;;;;;;;;;;;:22;3622:7;3608:22;;;;;;;;;;;;;;;;3601:29;;3409:228;;;;:::o;1176:148:1:-;1261:4;1284:20;:33;1305:11;1284:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:40;;1176:148;;;:::o;3162:105:5:-;3224:13;3256:4;3249:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:105;;;:::o;5967:1184::-;6221:7;:14;6207:3;:10;:28;6199:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6312:1;6298:16;;:2;:16;;;;6290:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6395:12;:10;:12::i;:::-;6387:20;;:4;:20;;;:60;;;;6411:36;6428:4;6434:12;:10;:12::i;:::-;6411:16;:36::i;:::-;6387:60;6366:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6534:16;6553:12;:10;:12::i;:::-;6534:31;;6576:60;6597:8;6607:4;6613:2;6617:3;6622:7;6631:4;6576:20;:60::i;:::-;6652:9;6647:349;6671:3;:10;6667:1;:14;6647:349;;;6702:10;6715:3;6719:1;6715:6;;;;;;;;;;;;;;6702:19;;6735:14;6752:7;6760:1;6752:10;;;;;;;;;;;;;;6735:27;;6799:123;6840:6;6799:123;;;;;;;;;;;;;;;;;:9;:13;6809:2;6799:13;;;;;;;;;;;:19;6813:4;6799:19;;;;;;;;;;;;;;;;:23;;:123;;;;;:::i;:::-;6777:9;:13;6787:2;6777:13;;;;;;;;;;;:19;6791:4;6777:19;;;;;;;;;;;;;;;:145;;;;6956:29;6978:6;6956:9;:13;6966:2;6956:13;;;;;;;;;;;:17;6970:2;6956:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6936:9;:13;6946:2;6936:13;;;;;;;;;;;:17;6950:2;6936:17;;;;;;;;;;;;;;;:49;;;;6647:349;;6683:3;;;;;6647:349;;;;7041:2;7011:47;;7035:4;7011:47;;7025:8;7011:47;;;7045:3;7050:7;7011:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:75;7105:8;7115:4;7121:2;7125:3;7130:7;7139:4;7069:35;:75::i;:::-;5967:1184;;;;;;:::o;3794:530::-;3967:16;4026:3;:10;4007:8;:15;:29;3999:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4093:30;4140:8;:15;4126:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4093:63;;4172:9;4167:120;4191:8;:15;4187:1;:19;4167:120;;;4246:30;4256:8;4265:1;4256:11;;;;;;;;;;;;;;4269:3;4273:1;4269:6;;;;;;;;;;;;;;4246:9;:30::i;:::-;4227:13;4241:1;4227:16;;;;;;;;;;;;;:49;;;;;4208:3;;;;;4167:120;;;;4304:13;4297:20;;;3794:530;;;;:::o;4392:306::-;4510:8;4494:24;;:12;:10;:12::i;:::-;:24;;;;4486:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4620:8;4575:18;:32;4594:12;:10;:12::i;:::-;4575:32;;;;;;;;;;;;;;;:42;4608:8;4575:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;4672:8;4643:48;;4658:12;:10;:12::i;:::-;4643:48;;;4682:8;4643:48;;;;;;;;;;;;;;;;;;;;4392:306;;:::o;4765:166::-;4864:4;4887:18;:27;4906:7;4887:27;;;;;;;;;;;;;;;:37;4915:8;4887:37;;;;;;;;;;;;;;;;;;;;;;;;;4880:44;;4765:166;;;;:::o;4998:897::-;5227:1;5213:16;;:2;:16;;;;5205:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:12;:10;:12::i;:::-;5302:20;;:4;:20;;;:60;;;;5326:36;5343:4;5349:12;:10;:12::i;:::-;5326:16;:36::i;:::-;5302:60;5281:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5440:16;5459:12;:10;:12::i;:::-;5440:31;;5482:96;5503:8;5513:4;5519:2;5523:21;5541:2;5523:17;:21::i;:::-;5546:25;5564:6;5546:17;:25::i;:::-;5573:4;5482:20;:96::i;:::-;5611:77;5635:6;5611:77;;;;;;;;;;;;;;;;;:9;:13;5621:2;5611:13;;;;;;;;;;;:19;5625:4;5611:19;;;;;;;;;;;;;;;;:23;;:77;;;;;:::i;:::-;5589:9;:13;5599:2;5589:13;;;;;;;;;;;:19;5603:4;5589:19;;;;;;;;;;;;;;;:99;;;;5718:29;5740:6;5718:9;:13;5728:2;5718:13;;;;;;;;;;;:17;5732:2;5718:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;5698:9;:13;5708:2;5698:13;;;;;;;;;;;:17;5712:2;5698:17;;;;;;;;;;;;;;;:49;;;;5794:2;5763:46;;5788:4;5763:46;;5778:8;5763:46;;;5798:2;5802:6;5763:46;;;;;;;;;;;;;;;;;;;;;;;;5820:68;5851:8;5861:4;5867:2;5871;5875:6;5883:4;5820:30;:68::i;:::-;4998:897;;;;;;:::o;828:104:10:-;881:15;915:10;908:17;;828:104;:::o;12685:235:5:-;;;;;;;:::o;5443:163:3:-;5529:7;5561:1;5556;:6;;5564:12;5548:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:1;5594;:5;5587:12;;5443:163;;;;;:::o;2701:175::-;2759:7;2778:9;2794:1;2790;:5;2778:17;;2818:1;2813;:6;;2805:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:1;2861:8;;;2701:175;;;;:::o;13695:800:5:-;13939:15;:2;:13;;;:15::i;:::-;13935:554;;;14002:2;13974:54;;;14029:8;14039:4;14045:3;14050:7;14059:4;13974:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13970:509;;;;:::i;:::-;;;;;;;;14355:6;14348:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13970:509;14402:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13970:509;14125:63;;;14113:75;;;:8;:75;;;;14109:172;;14212:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14109:172;14065:230;13935:554;13695:800;;;;;;:::o;14501:193::-;14567:16;14595:22;14634:1;14620:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14595:41;;14657:7;14646:5;14652:1;14646:8;;;;;;;;;;;;;:18;;;;;14682:5;14675:12;;;14501:193;;;:::o;12926:763::-;13145:15;:2;:13;;;:15::i;:::-;13141:542;;;13208:2;13180:49;;;13230:8;13240:4;13246:2;13250:6;13258:4;13180:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:497;;;;:::i;:::-;;;;;;;;13549:6;13542:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:497;13596:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:497;13324:58;;;13312:70;;;:8;:70;;;;13308:167;;13406:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:167;13264:225;13141:542;12926:763;;;;;;:::o;737:413:9:-;797:4;1000:12;1109:7;1097:20;1089:28;;1142:1;1135:4;:8;1128:15;;;737:413;;;:::o;7:102:19:-;;99:2;95:7;90:2;83:5;79:14;75:28;65:38;;55:54;;;:::o;115:106::-;;208:5;203:3;199:15;178:36;;168:53;;;:::o;227:833::-;;304:4;286:16;283:26;280:2;;;312:5;;280:2;350:1;347;344;329:23;372:34;403:1;397:8;372:34;:::i;:::-;433:10;428:3;425:19;415:2;;448:5;;;415:2;483;477:9;541:1;523:16;519:24;516:1;510:4;495:49;574:4;568:11;673:16;666:4;658:6;654:17;651:39;618:18;610:6;607:30;591:113;588:2;;;719:5;;;;;588:2;765:6;759:4;755:17;801:3;795:10;828:18;820:6;817:30;814:2;;;850:5;;;;;;;814:2;898:6;891:4;886:3;882:14;878:27;935:16;929:4;925:27;920:3;917:36;914:2;;;956:5;;;;;;;;914:2;1004:29;1026:6;1004:29;:::i;:::-;997:4;992:3;988:14;984:50;980:2;973:62;1051:3;1044:10;;270:790;;;;;;;;:::o" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol": { + "IERC1155MetadataURIUpgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol": { + "IERC1155ReceiverUpgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "bc197c81", + "onERC1155Received(address,address,uint256,uint256,bytes)": "f23a6e61", + "supportsInterface(bytes4)": "01ffc9a7" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol": { + "IERC1155Upgradeable": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7" + } + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "AddressUpgradeable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0dd45156f6cac53a909bc5ecbe49e330381adbe17860cb5bcede45c77183a9464736f6c63430007030033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 0xDD GASLIMIT ISZERO PUSH16 0x6CAC53A909BC5ECBE49E330381ADBE17 DUP7 0xC 0xB5 0xBC 0xED 0xE4 0x5C PUSH24 0x183A9464736F6C6343000703003300000000000000000000 ", + "sourceMap": "134:6715:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0dd45156f6cac53a909bc5ecbe49e330381adbe17860cb5bcede45c77183a9464736f6c63430007030033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 0xDD GASLIMIT ISZERO PUSH16 0x6CAC53A909BC5ECBE49E330381ADBE17 DUP7 0xC 0xB5 0xBC 0xED 0xE4 0x5C PUSH24 0x183A9464736F6C6343000703003300000000000000000000 ", + "sourceMap": "134:6715:9:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ContextUpgradeable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol": { + "CountersUpgradeable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073dc71adde543ec9a0d085be4fc7d126f5ff34fe67419bf0b8bb18353695348a64736f6c63430007030033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xDC71ADDE543EC9A0D085BE4FC7D126F5FF34FE67 COINBASE SWAP12 CREATE 0xB8 0xBB XOR CALLDATALOAD CALLDATASIZE SWAP6 CALLVALUE DUP11 PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "681:870:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073dc71adde543ec9a0d085be4fc7d126f5ff34fe67419bf0b8bb18353695348a64736f6c63430007030033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xDC71ADDE543EC9A0D085BE4FC7D126F5FF34FE67 COINBASE SWAP12 CREATE 0xB8 0xBB XOR CALLDATALOAD CALLDATASIZE SWAP6 CALLVALUE DUP11 PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "681:870:11:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol": { + "EnumerableSetUpgradeable": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e45397825fe2095f787bfc09ff3016d81844610f0849b40c990e79d51a3445e164736f6c63430007030033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 MSTORE8 SWAP8 DUP3 0x5F 0xE2 MULMOD 0x5F PUSH25 0x7BFC09FF3016D81844610F0849B40C990E79D51A3445E16473 PUSH16 0x6C634300070300330000000000000000 ", + "sourceMap": "753:8645:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e45397825fe2095f787bfc09ff3016d81844610f0849b40c990e79d51a3445e164736f6c63430007030033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 MSTORE8 SWAP8 DUP3 0x5F 0xE2 MULMOD 0x5F PUSH25 0x7BFC09FF3016D81844610F0849B40C990E79D51A3445E16473 PUSH16 0x6C634300070300330000000000000000 ", + "sourceMap": "753:8645:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + } + } + }, + "@openzeppelin/contracts/math/SafeMath.sol": { + "SafeMath": { + "abi": [], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220066f40616b5226ec31bc7258afa913353f9705ba302e1f8238fc46175c66983d64736f6c63430007030033", + "opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD PUSH16 0x40616B5226EC31BC7258AFA913353F97 SDIV 0xBA ADDRESS 0x2E 0x1F DUP3 CODESIZE 0xFC CHAINID OR 0x5C PUSH7 0x983D64736F6C63 NUMBER STOP SMOD SUB STOP CALLER ", + "sourceMap": "630:4578:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220066f40616b5226ec31bc7258afa913353f9705ba302e1f8238fc46175c66983d64736f6c63430007030033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD PUSH16 0x40616B5226EC31BC7258AFA913353F97 SDIV 0xBA ADDRESS 0x2E 0x1F DUP3 CODESIZE 0xFC CHAINID OR 0x5C PUSH7 0x983D64736F6C63 NUMBER STOP SMOD SUB STOP CALLER ", + "sourceMap": "630:4578:13:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + } + } + }, + "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol": { + "DAOToken": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DELEGATION_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint96", + "name": "amount", + "type": "uint96" + } + ], + "name": "_burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getCurrentVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInitialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "governor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newGovernor", + "type": "address" + } + ], + "name": "setGovernor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1238:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "80:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "95:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "89:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "89:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "80:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "138:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "111:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "111:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "111:33:19" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "48:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "56:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64:5:19", + "type": "" + } + ], + "src": "7:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "233:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "279:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "288:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "291:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "281:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "281:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "281:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "254:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "263:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "250:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "250:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "275:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "246:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "246:32:19" + }, + "nodeType": "YulIf", + "src": "243:2:19" + }, + { + "nodeType": "YulBlock", + "src": "305:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "319:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "333:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "323:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "347:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "393:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "404:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "389:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "389:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "413:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "357:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "357:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "347:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "203:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "214:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "226:6:19", + "type": "" + } + ], + "src": "156:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "509:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "526:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "549:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "531:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "531:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "519:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "519:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "519:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "497:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "504:3:19", + "type": "" + } + ], + "src": "444:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "688:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "699:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "684:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "676:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "756:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "769:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "780:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "765:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "765:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "712:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "712:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "712:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "638:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "650:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "661:4:19", + "type": "" + } + ], + "src": "568:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "841:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "851:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "880:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "862:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "862:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "851:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "823:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "833:7:19", + "type": "" + } + ], + "src": "796:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "943:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "953:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "968:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "975:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "964:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "964:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "953:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "925:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "935:7:19", + "type": "" + } + ], + "src": "898:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1075:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1085:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1096:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1085:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1057:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1067:7:19", + "type": "" + } + ], + "src": "1030:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1156:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1213:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1222:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1225:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1215:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1215:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1215:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1204:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1186:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "1186:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1176:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1176:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1169:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1169:43:19" + }, + "nodeType": "YulIf", + "src": "1166:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1149:5:19", + "type": "" + } + ], + "src": "1113:122:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\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_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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040526a084595161401484a0000006000556000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006257600080fd5b50604051620037c7380380620037c78339818101604052810190620000889190620001c1565b600054600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200019b9190620001fe565b60405180910390a35062000273565b600081519050620001bb8162000259565b92915050565b600060208284031215620001d457600080fd5b6000620001e484828501620001aa565b91505092915050565b620001f8816200024f565b82525050565b6000602082019050620002156000830184620001ed565b92915050565b600062000228826200022f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b62000264816200021b565b81146200027057600080fd5b50565b61354480620002836000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063782d6fe1116100de578063b72218e311610097578063c4e41b2211610071578063c4e41b2214610488578063dd62ed3e146104a6578063e7a324dc146104d6578063f1127ed8146104f457610173565b8063b72218e314610432578063c3cda52014610450578063c42cf5351461046c57610173565b8063782d6fe1146103365780637ecebe001461036657806395d89b4114610396578063a9059cbb146103b4578063ae80d9de146103e4578063b4b5ea571461040257610173565b8063313ce56711610130578063313ce56714610250578063587cde1e1461026e5780635c19a95c1461029e5780636fcfff45146102ba57806370a08231146102ea57806372d3ee9e1461031a57610173565b806306fdde0314610178578063095ea7b3146101965780630c340a24146101c657806318160ddd146101e457806320606b701461020257806323b872dd14610220575b600080fd5b610180610525565b60405161018d9190612fa2565b60405180910390f35b6101b060048036038101906101ab91906127ca565b61055e565b6040516101bd9190612e9d565b60405180910390f35b6101ce6106f1565b6040516101db9190612e82565b60405180910390f35b6101ec610717565b6040516101f99190613124565b60405180910390f35b61020a61071d565b6040516102179190612eb8565b60405180910390f35b61023a6004803603810190610235919061277b565b610741565b6040516102479190612e9d565b60405180910390f35b6102586109d5565b6040516102659190613183565b60405180910390f35b61028860048036038101906102839190612716565b6109da565b6040516102959190612e82565b60405180910390f35b6102b860048036038101906102b39190612716565b610a0d565b005b6102d460048036038101906102cf9190612716565b610a1a565b6040516102e1919061313f565b60405180910390f35b61030460048036038101906102ff9190612716565b610a3d565b6040516103119190613124565b60405180910390f35b610334600480360381019061032f91906128cb565b610aac565b005b610350600480360381019061034b91906127ca565b610d5f565b60405161035d91906131b9565b60405180910390f35b610380600480360381019061037b9190612716565b61116e565b60405161038d9190613124565b60405180910390f35b61039e611186565b6040516103ab9190612fa2565b60405180910390f35b6103ce60048036038101906103c991906127ca565b6111bf565b6040516103db9190612e9d565b60405180910390f35b6103ec6111fc565b6040516103f99190612e82565b60405180910390f35b61041c60048036038101906104179190612716565b611226565b60405161042991906131b9565b60405180910390f35b61043a611314565b6040516104479190612e82565b60405180910390f35b61046a60048036038101906104659190612806565b61133a565b005b61048660048036038101906104819190612716565b6115f7565b005b61049061175c565b60405161049d9190613124565b60405180910390f35b6104c060048036038101906104bb919061273f565b611765565b6040516104cd9190613124565b60405180910390f35b6104de611812565b6040516104eb9190612eb8565b60405180910390f35b61050e6004803603810190610509919061288f565b611836565b60405161051c92919061315a565b60405180910390f35b6040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e00000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156105b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506105d6565b6105d38360405180606001604052806026815260200161348b6026913961188f565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516106de919061319e565b60405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108048560405180606001604052806026815260200161348b6026913961188f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561087e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156109bc5760006108a883836040518060600160405280603e815260200161344d603e91396118ed565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109b2919061319e565b60405180910390a3505b6109c787878361195e565b600193505050509392505050565b601281565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a173382611de3565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613104565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906130e4565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050816bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90612fc4565b60405180910390fd5b818103600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550816bffffffffffffffffffffffff166000808282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d52919061319e565b60405180910390a3505050565b6000438210610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a90613064565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610e10576000915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610f1257600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610f93576000915050611168565b6000806001830390505b8163ffffffff168163ffffffff1611156110ea576000600283830363ffffffff1681610fc557fe5b0482039050610fd261266a565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff1614156110c257806020015195505050505050611168565b86816000015163ffffffff1610156110dc578193506110e3565b6001820392505b5050610f9d565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600581526020017f64434c4d3800000000000000000000000000000000000000000000000000000081525081565b6000806111e4836040518060600160405280602781526020016134266027913961188f565b90506111f133858361195e565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161129057600061130c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e000000000000000000000000000000815250805190602001206113a2611fa3565b306040516020016113b69493929190612f18565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016114079493929190612ed3565b60405160208183030381529060405280519060200120905060008282604051602001611434929190612e4b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516114719493929190612f5d565b6020604051602081039080840390855afa158015611493573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613024565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613084565b60405180910390fd5b874211156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906130c4565b60405180910390fd5b6115eb818b611de3565b50505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613004565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612fe4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612fa2565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489190612fa2565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c5906130a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613044565b60405180910390fd5b611ab8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603781526020016133be603791396118ed565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b9f600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603181526020016133f560319139611fb0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c69919061319e565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d1457611d0f8283611de3565b611dde565b611ddd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612026565b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f9d828483612026565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612fa2565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207057506000816bffffffffffffffffffffffff16115b1561231c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121c8576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161211357600061218f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121b682856040518060600160405280602981526020016134b1602991396118ed565b90506121c486848484612321565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461231b576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116122665760006122e2565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612309828560405180606001604052806028815260200161339660289139611fb0565b905061231785848484612321565b5050505b5b505050565b6000612345436040518060600160405280603581526020016134da60359139612614565b905060008463ffffffff161180156123da57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156124755781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506125bd565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516126059291906131d4565b60405180910390a25050505050565b600064010000000083108290612660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126579190612fa2565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506126a78161330b565b92915050565b6000813590506126bc81613322565b92915050565b6000813590506126d181613339565b92915050565b6000813590506126e681613350565b92915050565b6000813590506126fb81613367565b92915050565b6000813590506127108161337e565b92915050565b60006020828403121561272857600080fd5b600061273684828501612698565b91505092915050565b6000806040838503121561275257600080fd5b600061276085828601612698565b925050602061277185828601612698565b9150509250929050565b60008060006060848603121561279057600080fd5b600061279e86828701612698565b93505060206127af86828701612698565b92505060406127c0868287016126c2565b9150509250925092565b600080604083850312156127dd57600080fd5b60006127eb85828601612698565b92505060206127fc858286016126c2565b9150509250929050565b60008060008060008060c0878903121561281f57600080fd5b600061282d89828a01612698565b965050602061283e89828a016126c2565b955050604061284f89828a016126c2565b945050606061286089828a016126ec565b935050608061287189828a016126ad565b92505060a061288289828a016126ad565b9150509295509295509295565b600080604083850312156128a257600080fd5b60006128b085828601612698565b92505060206128c1858286016126d7565b9150509250929050565b600080604083850312156128de57600080fd5b60006128ec85828601612698565b92505060206128fd85828601612701565b9150509250929050565b61291081613224565b82525050565b61291f81613236565b82525050565b61292e81613242565b82525050565b61294561294082613242565b6132f0565b82525050565b6000612956826131fd565b6129608185613208565b93506129708185602086016132bd565b612979816132fa565b840191505092915050565b6000612991602983613208565b91507f64434c4d383a3a5f6275726e3a206275726e20616d6f756e742065786365656460008301527f732062616c616e636500000000000000000000000000000000000000000000006020830152604082019050919050565b60006129f7603083613208565b91507f64434c4d3a3a736574476f7665726e6f723a20676f7665726e6f722063616e2060008301527f6f6e6c7920626520736574206f6e6365000000000000000000000000000000006020830152604082019050919050565b6000612a5d602a83613208565b91507f64434c4d383a3a736574476f7665726e6f723a206d75737420626520696e697460008301527f69616c20686f6c646572000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac3600283613219565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612b03602783613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c696420736960008301527f676e6174757265000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b69603b83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e7366657220746f20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000612bcf602883613208565b91507f64434c4d383a3a6765745072696f72566f7465733a206e6f742079657420646560008301527f7465726d696e65640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c35602383613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c6964206e6f60008301527f6e636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c9b603d83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e736665722066726f6d20746865207a65726f20616464726573730000006020830152604082019050919050565b6000612d01602783613208565b91507f64434c4d383a3a64656c656761746542795369673a207369676e61747572652060008301527f65787069726564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d67601e83613208565b91507f64434c4d383a3a5f6275726e3a206d75737420626520676f7665726e6f7200006000830152602082019050919050565b6000612da7602883613208565b91507f64434c4d383a3a5f6275726e3a206275726e2066726f6d20746865207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b612e098161326c565b82525050565b612e1881613276565b82525050565b612e2781613286565b82525050565b612e36816132ab565b82525050565b612e4581613293565b82525050565b6000612e5682612ab6565b9150612e628285612934565b602082019150612e728284612934565b6020820191508190509392505050565b6000602082019050612e976000830184612907565b92915050565b6000602082019050612eb26000830184612916565b92915050565b6000602082019050612ecd6000830184612925565b92915050565b6000608082019050612ee86000830187612925565b612ef56020830186612907565b612f026040830185612e00565b612f0f6060830184612e00565b95945050505050565b6000608082019050612f2d6000830187612925565b612f3a6020830186612925565b612f476040830185612e00565b612f546060830184612907565b95945050505050565b6000608082019050612f726000830187612925565b612f7f6020830186612e1e565b612f8c6040830185612925565b612f996060830184612925565b95945050505050565b60006020820190508181036000830152612fbc818461294b565b905092915050565b60006020820190508181036000830152612fdd81612984565b9050919050565b60006020820190508181036000830152612ffd816129ea565b9050919050565b6000602082019050818103600083015261301d81612a50565b9050919050565b6000602082019050818103600083015261303d81612af6565b9050919050565b6000602082019050818103600083015261305d81612b5c565b9050919050565b6000602082019050818103600083015261307d81612bc2565b9050919050565b6000602082019050818103600083015261309d81612c28565b9050919050565b600060208201905081810360008301526130bd81612c8e565b9050919050565b600060208201905081810360008301526130dd81612cf4565b9050919050565b600060208201905081810360008301526130fd81612d5a565b9050919050565b6000602082019050818103600083015261311d81612d9a565b9050919050565b60006020820190506131396000830184612e00565b92915050565b60006020820190506131546000830184612e0f565b92915050565b600060408201905061316f6000830185612e0f565b61317c6020830184612e3c565b9392505050565b60006020820190506131986000830184612e1e565b92915050565b60006020820190506131b36000830184612e2d565b92915050565b60006020820190506131ce6000830184612e3c565b92915050565b60006040820190506131e96000830185612e2d565b6131f66020830184612e2d565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061322f8261324c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132b682613293565b9050919050565b60005b838110156132db5780820151818401526020810190506132c0565b838111156132ea576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61331481613224565b811461331f57600080fd5b50565b61332b81613242565b811461333657600080fd5b50565b6133428161326c565b811461334d57600080fd5b50565b61335981613276565b811461336457600080fd5b50565b61337081613286565b811461337b57600080fd5b50565b61338781613293565b811461339257600080fd5b5056fe64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777364434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e636564434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777364434c4d383a3a7472616e736665723a20616d6f756e742065786365656473203936206269747364434c4d383a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e636564434c4d383a3a617070726f76653a20616d6f756e742065786365656473203936206269747364434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f777364434c4d383a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212209e2b838a499d4a780857e8a99e0123f73d9723b55648df6f08017e56b99aca3164736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH11 0x84595161401484A000000 PUSH1 0x0 SSTORE PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x37C7 CODESIZE SUB DUP1 PUSH3 0x37C7 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x88 SWAP2 SWAP1 PUSH3 0x1C1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH3 0x19B SWAP2 SWAP1 PUSH3 0x1FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1BB DUP2 PUSH3 0x259 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x1E4 DUP5 DUP3 DUP6 ADD PUSH3 0x1AA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x1F8 DUP2 PUSH3 0x24F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x215 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x1ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x228 DUP3 PUSH3 0x22F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x264 DUP2 PUSH3 0x21B JUMP JUMPDEST DUP2 EQ PUSH3 0x270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3544 DUP1 PUSH3 0x283 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 0x173 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB72218E3 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC4E41B22 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4E41B22 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x4A6 JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x4F4 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0xB72218E3 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0xC42CF535 EQ PUSH2 0x46C JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0xAE80D9DE EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x402 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x72D3EE9E EQ PUSH2 0x31A JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xC340A24 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18D SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CE PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EC PUSH2 0x717 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x71D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x277B JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x258 PUSH2 0x9D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x288 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA0D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x334 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x28CB JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x350 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x31B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x380 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37B SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x116E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39E PUSH2 0x1186 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AB SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0x11BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DB SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x417 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x1226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x31B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43A PUSH2 0x1314 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x447 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x465 SWAP2 SWAP1 PUSH2 0x2806 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x15F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x490 PUSH2 0x175C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49D SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BB SWAP2 SWAP1 PUSH2 0x273F JUMP JUMPDEST PUSH2 0x1765 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CD SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4DE PUSH2 0x1812 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x50E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x509 SWAP2 SWAP1 PUSH2 0x288F JUMP JUMPDEST PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51C SWAP3 SWAP2 SWAP1 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20546F6B656E000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 EQ ISZERO PUSH2 0x5B1 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 POP PUSH2 0x5D6 JUMP JUMPDEST PUSH2 0x5D3 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x348B PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6DE SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH2 0x804 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x348B PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x87E JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x9BC JUMPI PUSH1 0x0 PUSH2 0x8A8 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3E DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x344D PUSH1 0x3E SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9B2 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMPDEST PUSH2 0x9C7 DUP8 DUP8 DUP4 PUSH2 0x195E JUMP JUMPDEST PUSH1 0x1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xA17 CALLER DUP3 PUSH2 0x1DE3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xB1C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB13 SWAP1 PUSH2 0x3104 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x30E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xC67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xD52 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9A SWAP1 PUSH2 0x3064 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xE10 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND GT PUSH2 0xF12 JUMPI PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP4 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xF93 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 SUB SWAP1 POP JUMPDEST DUP2 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x10EA JUMPI PUSH1 0x0 PUSH1 0x2 DUP4 DUP4 SUB PUSH4 0xFFFFFFFF AND DUP2 PUSH2 0xFC5 JUMPI INVALID JUMPDEST DIV DUP3 SUB SWAP1 POP PUSH2 0xFD2 PUSH2 0x266A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP DUP7 DUP2 PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0x10C2 JUMPI DUP1 PUSH1 0x20 ADD MLOAD SWAP6 POP POP POP POP POP POP PUSH2 0x1168 JUMP JUMPDEST DUP7 DUP2 PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND LT ISZERO PUSH2 0x10DC JUMPI DUP2 SWAP4 POP PUSH2 0x10E3 JUMP JUMPDEST PUSH1 0x1 DUP3 SUB SWAP3 POP JUMPDEST POP POP PUSH2 0xF9D JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64434C4D38000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11E4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3426 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP PUSH2 0x11F1 CALLER DUP6 DUP4 PUSH2 0x195E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT PUSH2 0x1290 JUMPI PUSH1 0x0 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP4 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20546F6B656E000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x13A2 PUSH2 0x1FA3 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1407 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1434 SWAP3 SWAP2 SWAP1 PUSH2 0x2E4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1471 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1493 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1506 SWAP1 PUSH2 0x3024 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE DUP10 EQ PUSH2 0x159E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1595 SWAP1 PUSH2 0x3084 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP8 TIMESTAMP GT ISZERO PUSH2 0x15E1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D8 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15EB DUP2 DUP12 PUSH2 0x1DE3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x167E SWAP1 PUSH2 0x3004 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1718 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x170F SWAP1 PUSH2 0x2FE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 PUSH13 0x1000000000000000000000000 DUP4 LT DUP3 SWAP1 PUSH2 0x18E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18DA SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO DUP3 SWAP1 PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1948 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x19CE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19C5 SWAP1 PUSH2 0x30A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A35 SWAP1 PUSH2 0x3044 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AB8 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33BE PUSH1 0x37 SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1B9F PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x31 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33F5 PUSH1 0x31 SWAP2 CODECOPY PUSH2 0x1FB0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C69 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D0F DUP3 DUP4 PUSH2 0x1DE3 JUMP JUMPDEST PUSH2 0x1DDE JUMP JUMPDEST PUSH2 0x1DDD PUSH1 0x5 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x2026 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F9D DUP3 DUP5 DUP4 PUSH2 0x2026 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP6 ADD SWAP1 POP DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO DUP4 SWAP1 PUSH2 0x201A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2011 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x2070 JUMPI POP PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT JUMPDEST ISZERO PUSH2 0x231C JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x21C8 JUMPI PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH4 0xFFFFFFFF AND GT PUSH2 0x2113 JUMPI PUSH1 0x0 PUSH2 0x218F JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x21B6 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B1 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST SWAP1 POP PUSH2 0x21C4 DUP7 DUP5 DUP5 DUP5 PUSH2 0x2321 JUMP JUMPDEST POP POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x231B JUMPI PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH4 0xFFFFFFFF AND GT PUSH2 0x2266 JUMPI PUSH1 0x0 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2309 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3396 PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x1FB0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2317 DUP6 DUP5 DUP5 DUP5 PUSH2 0x2321 JUMP JUMPDEST POP POP POP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2345 NUMBER PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x35 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34DA PUSH1 0x35 SWAP2 CODECOPY PUSH2 0x2614 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x23DA JUMPI POP DUP1 PUSH4 0xFFFFFFFF AND PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP8 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x2475 JUMPI DUP2 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP8 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x25BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 DUP5 ADD PUSH1 0x7 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2605 SWAP3 SWAP2 SWAP1 PUSH2 0x31D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0x100000000 DUP4 LT DUP3 SWAP1 PUSH2 0x2660 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2657 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26A7 DUP2 PUSH2 0x330B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26BC DUP2 PUSH2 0x3322 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26D1 DUP2 PUSH2 0x3339 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26E6 DUP2 PUSH2 0x3350 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26FB DUP2 PUSH2 0x3367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2710 DUP2 PUSH2 0x337E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2736 DUP5 DUP3 DUP6 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2760 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2771 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x279E DUP7 DUP3 DUP8 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x27AF DUP7 DUP3 DUP8 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x27C0 DUP7 DUP3 DUP8 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x27EB DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x27FC DUP6 DUP3 DUP7 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x282D DUP10 DUP3 DUP11 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x283E DUP10 DUP3 DUP11 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x284F DUP10 DUP3 DUP11 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2860 DUP10 DUP3 DUP11 ADD PUSH2 0x26EC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2871 DUP10 DUP3 DUP11 ADD PUSH2 0x26AD JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2882 DUP10 DUP3 DUP11 ADD PUSH2 0x26AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28B0 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28C1 DUP6 DUP3 DUP7 ADD PUSH2 0x26D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28EC DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28FD DUP6 DUP3 DUP7 ADD PUSH2 0x2701 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2910 DUP2 PUSH2 0x3224 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x291F DUP2 PUSH2 0x3236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x292E DUP2 PUSH2 0x3242 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2945 PUSH2 0x2940 DUP3 PUSH2 0x3242 JUMP JUMPDEST PUSH2 0x32F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2956 DUP3 PUSH2 0x31FD JUMP JUMPDEST PUSH2 0x2960 DUP2 DUP6 PUSH2 0x3208 JUMP JUMPDEST SWAP4 POP PUSH2 0x2970 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x32BD JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x32FA JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2991 PUSH1 0x29 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206275726E20616D6F756E7420657863656564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x732062616C616E63650000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29F7 PUSH1 0x30 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D3A3A736574476F7665726E6F723A20676F7665726E6F722063616E20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E6C7920626520736574206F6E636500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A5D PUSH1 0x2A DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A736574476F7665726E6F723A206D75737420626520696E6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x69616C20686F6C64657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC3 PUSH1 0x2 DUP4 PUSH2 0x3219 JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B03 PUSH1 0x27 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A20696E76616C6964207369 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x676E617475726500000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B69 PUSH1 0x3B DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F7472616E73666572546F6B656E733A2063616E6E6F742074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72616E7366657220746F20746865207A65726F20616464726573730000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BCF PUSH1 0x28 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A6765745072696F72566F7465733A206E6F7420796574206465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726D696E6564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C35 PUSH1 0x23 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A20696E76616C6964206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E63650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH1 0x3D DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F7472616E73666572546F6B656E733A2063616E6E6F742074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72616E736665722066726F6D20746865207A65726F2061646472657373000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D01 PUSH1 0x27 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A207369676E617475726520 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6578706972656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D67 PUSH1 0x1E DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206D75737420626520676F7665726E6F720000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA7 PUSH1 0x28 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206275726E2066726F6D20746865207A65726F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646472657373000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E09 DUP2 PUSH2 0x326C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E18 DUP2 PUSH2 0x3276 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E27 DUP2 PUSH2 0x3286 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E36 DUP2 PUSH2 0x32AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP2 PUSH2 0x3293 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E56 DUP3 PUSH2 0x2AB6 JUMP JUMPDEST SWAP2 POP PUSH2 0x2E62 DUP3 DUP6 PUSH2 0x2934 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x2E72 DUP3 DUP5 PUSH2 0x2934 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E97 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2907 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2EB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2ECD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2925 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2EE8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2EF5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2907 JUMP JUMPDEST PUSH2 0x2F02 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E00 JUMP JUMPDEST PUSH2 0x2F0F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2E00 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2F2D PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F3A PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F47 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E00 JUMP JUMPDEST PUSH2 0x2F54 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2907 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2F72 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F7F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2E1E JUMP JUMPDEST PUSH2 0x2F8C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2925 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FBC DUP2 DUP5 PUSH2 0x294B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FDD DUP2 PUSH2 0x2984 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FFD DUP2 PUSH2 0x29EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x301D DUP2 PUSH2 0x2A50 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x303D DUP2 PUSH2 0x2AF6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x305D DUP2 PUSH2 0x2B5C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x307D DUP2 PUSH2 0x2BC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x309D DUP2 PUSH2 0x2C28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30BD DUP2 PUSH2 0x2C8E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30DD DUP2 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30FD DUP2 PUSH2 0x2D5A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x311D DUP2 PUSH2 0x2D9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3139 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E00 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3154 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x316F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E0F JUMP JUMPDEST PUSH2 0x317C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E3C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x31B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E2D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x31CE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x31E9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E2D JUMP JUMPDEST PUSH2 0x31F6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E2D JUMP JUMPDEST SWAP4 SWAP3 POP POP 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 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x322F DUP3 PUSH2 0x324C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B6 DUP3 PUSH2 0x3293 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32DB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x32C0 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32EA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3314 DUP2 PUSH2 0x3224 JUMP JUMPDEST DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x332B DUP2 PUSH2 0x3242 JUMP JUMPDEST DUP2 EQ PUSH2 0x3336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3342 DUP2 PUSH2 0x326C JUMP JUMPDEST DUP2 EQ PUSH2 0x334D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3359 DUP2 PUSH2 0x3276 JUMP JUMPDEST DUP2 EQ PUSH2 0x3364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3370 DUP2 PUSH2 0x3286 JUMP JUMPDEST DUP2 EQ PUSH2 0x337B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3387 DUP2 PUSH2 0x3293 JUMP JUMPDEST DUP2 EQ PUSH2 0x3392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH5 0x434C4D383A GASPRICE 0x5F PUSH14 0x6F7665566F7465733A20766F7465 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206F766572666C6F777364434C4D383A3A5F7472 PUSH2 0x6E73 PUSH7 0x6572546F6B656E PUSH20 0x3A207472616E7366657220616D6F756E74206578 PUSH4 0x65656473 KECCAK256 PUSH3 0x616C61 PUSH15 0x636564434C4D383A3A5F7472616E73 PUSH7 0x6572546F6B656E PUSH20 0x3A207472616E7366657220616D6F756E74206F76 PUSH6 0x72666C6F7773 PUSH5 0x434C4D383A GASPRICE PUSH21 0x72616E736665723A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 PUSH5 0x434C4D383A GASPRICE PUSH21 0x72616E7366657246726F6D3A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E742065786365656473207370656E64657220616C6C PUSH16 0x77616E636564434C4D383A3A61707072 PUSH16 0x76653A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 PUSH5 0x434C4D383A GASPRICE 0x5F PUSH14 0x6F7665566F7465733A20766F7465 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420756E646572666C6F777364434C4D383A3A5F77 PUSH19 0x697465436865636B706F696E743A20626C6F63 PUSH12 0x206E756D6265722065786365 PUSH6 0x647320333220 PUSH3 0x697473 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0x2B DUP4 DUP11 0x49 SWAP14 0x4A PUSH25 0x857E8A99E0123F73D9723B55648DF6F08017E56B99ACA3164 PUSH20 0x6F6C634300070300330000000000000000000000 ", + "sourceMap": "1755:14013:14:-:0;;;2156:11;2130:37;;2407:1;2373:36;;;;;;;;;;;;;;;;;;;;4462:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4528:11;;4501:8;:17;4510:7;4501:17;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;4566:7;4550:13;;:23;;;;;;;;;;;;;;;;;;4609:7;4588:42;;4605:1;4588:42;;;4618:11;;4588:42;;;;;;:::i;:::-;;;;;;;;4462:175;1755:14013;;7:143:19;;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;70:80;;;;:::o;156:282::-;;275:2;263:9;254:7;250:23;246:32;243:2;;;291:1;288;281:12;243:2;333:1;357:64;413:7;404:6;393:9;389:22;357:64;:::i;:::-;347:74;;305:126;233:205;;;;:::o;444:118::-;531:24;549:5;531:24;:::i;:::-;526:3;519:37;509:53;;:::o;568:222::-;;699:2;688:9;684:18;676:26;;712:71;780:1;769:9;765:17;756:6;712:71;:::i;:::-;666:124;;;;:::o;796:96::-;;862:24;880:5;862:24;:::i;:::-;851:35;;841:51;;;:::o;898:126::-;;975:42;968:5;964:54;953:65;;943:81;;;:::o;1030:77::-;;1096:5;1085:16;;1075:32;;;:::o;1113:122::-;1186:24;1204:5;1186:24;:::i;:::-;1179:5;1176:35;1166:2;;1225:1;1222;1215:12;1166:2;1156:79;:::o;1755:14013:14:-;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:22780:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:19", + "type": "" + } + ], + "src": "7:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "204:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "214:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "236:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "223:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "223:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "214:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "279:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "252:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "252:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "252:33:19" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "182:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "190:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "198:5:19", + "type": "" + } + ], + "src": "152:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "359:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "381:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "368:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "368:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "359:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "424:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "397:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "397:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "397:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "327:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "335:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "343:5:19", + "type": "" + } + ], + "src": "297:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "493:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "503:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "525:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "512:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "512:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "503:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "567:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint32", + "nodeType": "YulIdentifier", + "src": "541:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "541:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "541:32:19" + } + ] + }, + "name": "abi_decode_t_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "471:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "479:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "487:5:19", + "type": "" + } + ], + "src": "442:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "635:85:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "645:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "667:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "654:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "654:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "645:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "708:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "683:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "683:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "683:31:19" + } + ] + }, + "name": "abi_decode_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "613:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "621:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "629:5:19", + "type": "" + } + ], + "src": "585:135:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "777:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "787:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "809:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "796:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "796:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "787:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "851:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint96", + "nodeType": "YulIdentifier", + "src": "825:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "825:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "825:32:19" + } + ] + }, + "name": "abi_decode_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "755:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "763:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "771:5:19", + "type": "" + } + ], + "src": "726:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "935:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "981:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "990:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "993:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "983:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "983:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "983:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "956:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "965:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "952:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "952:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "977:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "948:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "948:32:19" + }, + "nodeType": "YulIf", + "src": "945:2:19" + }, + { + "nodeType": "YulBlock", + "src": "1007:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1021:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1035:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1025:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1049:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1084:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1095:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1080:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1080:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1104:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1059:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1059:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1049:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "905:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "916:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "928:6:19", + "type": "" + } + ], + "src": "869:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1218:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1264:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1273:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1276:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1266:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1266:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1266:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1239:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1248:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1235:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1235:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1260:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1231:32:19" + }, + "nodeType": "YulIf", + "src": "1228:2:19" + }, + { + "nodeType": "YulBlock", + "src": "1290:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1304:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1318:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1308:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1332:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1367:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1378:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1363:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1363:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1387:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1342:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1342:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1332:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1415:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1429:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1443:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1433:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1458:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1493:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1504:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1489:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1489:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1513:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1468:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1468:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1458:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1180:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1191:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1203:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1211:6:19", + "type": "" + } + ], + "src": "1135:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1644:446:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1690:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1699:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1702:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1692:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1692:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1692:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1665:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1674:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1661:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1661:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1686:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1657:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1657:32:19" + }, + "nodeType": "YulIf", + "src": "1654:2:19" + }, + { + "nodeType": "YulBlock", + "src": "1716:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1730:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1744:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1734:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1758:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1793:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1804:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1789:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1789:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1813:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1768:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1768:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1758:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1841:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1855:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1869:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1859:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1884:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1919:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1930:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1915:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1915:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1939:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1894:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1894:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1884:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1967:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1981:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1995:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1985:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2010:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2045:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2056:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2041:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2041:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2065:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2020:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "2020:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2010:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1598:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1609:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1621:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1629:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1637:6:19", + "type": "" + } + ], + "src": "1544:546:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2179:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2225:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2234:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2237:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2227:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2227:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2227:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2200:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2196:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2196:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2221:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2192:32:19" + }, + "nodeType": "YulIf", + "src": "2189:2:19" + }, + { + "nodeType": "YulBlock", + "src": "2251:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2265:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2279:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2269:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2293:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2328:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2339:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2324:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2324:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2348:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2303:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "2303:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2293:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2376:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2390:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2404:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2394:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2419:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2454:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2465:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2450:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2450:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2474:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2429:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "2429:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2419:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2141:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2152:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2164:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2172:6:19", + "type": "" + } + ], + "src": "2096:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2654:825:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2701:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2710:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2713:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2703:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2703:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2703:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2675:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2684:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2671:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2671:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2696:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2667:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2667:33:19" + }, + "nodeType": "YulIf", + "src": "2664:2:19" + }, + { + "nodeType": "YulBlock", + "src": "2727:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2741:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2755:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2745:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2769:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2815:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2800:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2824:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2779:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "2779:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2769:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2852:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2866:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2880:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2870:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2895:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2930:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2941:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2926:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2926:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2950:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2905:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "2905:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2895:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2978:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2992:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3006:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2996:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3021:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3056:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3067:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3052:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3076:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3031:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3031:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3021:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3104:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3118:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3132:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3122:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3147:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3180:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3191:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3176:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3176:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3200:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3157:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "3157:51:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3147:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3228:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3242:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3256:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3246:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3272:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3307:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3318:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3303:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3303:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3327:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "3282:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3282:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "3272:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3355:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3369:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3383:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3373:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3399:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3434:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3445:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3430:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3430:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3454:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "3409:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3409:53:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "3399:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2623:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2631:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2639:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "2647:6:19", + "type": "" + } + ], + "src": "2505:974:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3567:319:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3613:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3622:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3625:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3615:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3615:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3615:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3588:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3597:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3584:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3584:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3609:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3580:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3580:32:19" + }, + "nodeType": "YulIf", + "src": "3577:2:19" + }, + { + "nodeType": "YulBlock", + "src": "3639:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3653:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3667:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3657:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3681:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3716:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3727:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3712:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3712:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3736:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3691:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3691:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3681:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3764:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3778:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3792:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3782:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3807:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3841:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3852:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3837:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3837:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3861:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint32", + "nodeType": "YulIdentifier", + "src": "3817:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "3817:52:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3807:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3529:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3540:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3552:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3560:6:19", + "type": "" + } + ], + "src": "3485:401:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3974:319:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4020:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4029:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4032:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4022:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4022:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4022:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3995:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4004:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3991:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3991:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4016:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3987:32:19" + }, + "nodeType": "YulIf", + "src": "3984:2:19" + }, + { + "nodeType": "YulBlock", + "src": "4046:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4060:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4074:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4064:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4088:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4123:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4134:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4119:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4119:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4143:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4098:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4098:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4088:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4171:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4185:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4199:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4189:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4214:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4248:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4259:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4244:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4244:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4268:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint96", + "nodeType": "YulIdentifier", + "src": "4224:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "4224:52:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4214:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3936:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3947:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3959:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3967:6:19", + "type": "" + } + ], + "src": "3892:401:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4364:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4381:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4404:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "4386:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "4386:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4374:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4374:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4374:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4352:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4359:3:19", + "type": "" + } + ], + "src": "4299:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4482:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4499:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4519:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "4504:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "4504:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4492:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4492:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4492:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4470:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4477:3:19", + "type": "" + } + ], + "src": "4423:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4603:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4620:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4643:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4625:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "4625:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4613:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4613:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4613:37:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4591:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4598:3:19", + "type": "" + } + ], + "src": "4538:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4745:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4762:3:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4805:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4787:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "4787:24:19" + } + ], + "functionName": { + "name": "leftAlign_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4767:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "4767:45:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4755:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4755:58:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4733:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4740:3:19", + "type": "" + } + ], + "src": "4662:157:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4917:272:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4927:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4974:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4941:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "4941:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4931:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4989:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5055:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5060:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4996:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "4996:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4989:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5102:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5109:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5098:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5098:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5116:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5121:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "5076:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "5076:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5076:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "5137:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5148:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5175:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "5153:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "5153:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5144:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5144:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5137:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4898:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4905:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4913:3:19", + "type": "" + } + ], + "src": "4825:364:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5341:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5351:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5417:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5422:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5358:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "5358:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5351:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5446:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5451:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5442:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5442:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "5455:34:19", + "type": "", + "value": "dCLM8::_burn: burn amount exceed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5435:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5435:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5435:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5511:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5516:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5507:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5507:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "5521:11:19", + "type": "", + "value": "s balance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5500:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5500:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5500:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "5543:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5554:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5559:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5550:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5550:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5543:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5329:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5337:3:19", + "type": "" + } + ], + "src": "5195:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5720:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5730:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5796:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5801:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5737:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "5737:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5730:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5825:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5830:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5821:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5821:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "5834:34:19", + "type": "", + "value": "dCLM::setGovernor: governor can " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5814:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5814:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5814:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5890:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5895:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5886:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5886:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "5900:18:19", + "type": "", + "value": "only be set once" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5879:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5879:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5879:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "5929:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5940:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5945:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5936:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5936:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5929:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5708:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5716:3:19", + "type": "" + } + ], + "src": "5574:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6106:228:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6116:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6182:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6187:2:19", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6123:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "6123:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6116:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6211:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6216:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6207:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6207:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "6220:34:19", + "type": "", + "value": "dCLM8::setGovernor: must be init" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6200:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6200:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6200:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6276:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6281:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6272:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6272:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "6286:12:19", + "type": "", + "value": "ial holder" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6265:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6265:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6265:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "6309:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6320:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6325:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6316:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6316:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6309:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6094:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6102:3:19", + "type": "" + } + ], + "src": "5960:374:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6504:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6514:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6598:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6603:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "6521:76:19" + }, + "nodeType": "YulFunctionCall", + "src": "6521:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6514:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6626:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6631:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6622:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6622:11:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6635:66:19", + "type": "", + "value": "0x1901000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6615:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6615:87:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6615:87:19" + }, + { + "nodeType": "YulAssignment", + "src": "6712:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6723:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6728:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6719:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6719:11:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6712:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6492:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6500:3:19", + "type": "" + } + ], + "src": "6340:396:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6888:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6898:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6964:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6969:2:19", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6905:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "6905:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6898:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6993:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6998:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6989:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6989:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7002:34:19", + "type": "", + "value": "dCLM8::delegateBySig: invalid si" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6982:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6982:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6982:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7063:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7054:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7068:9:19", + "type": "", + "value": "gnature" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7047:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7047:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7047:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "7088:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7099:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7104:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7095:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7095:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7088:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6876:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6884:3:19", + "type": "" + } + ], + "src": "6742:371:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7265:245:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7275:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7341:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7346:2:19", + "type": "", + "value": "59" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7282:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "7282:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7275:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7370:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7375:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7366:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7366:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7379:34:19", + "type": "", + "value": "dCLM8::_transferTokens: cannot t" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7359:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7359:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7359:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7435:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7440:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7431:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7431:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7445:29:19", + "type": "", + "value": "ransfer to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7424:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7424:51:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7424:51:19" + }, + { + "nodeType": "YulAssignment", + "src": "7485:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7496:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7501:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7492:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7492:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7485:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7253:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7261:3:19", + "type": "" + } + ], + "src": "7119:391:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7662:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7672:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7738:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7743:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7679:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "7679:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7672:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7767:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7772:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7763:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7763:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7776:34:19", + "type": "", + "value": "dCLM8::getPriorVotes: not yet de" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7756:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7756:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7756:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7832:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7837:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7828:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7828:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "7842:10:19", + "type": "", + "value": "termined" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7821:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7821:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7821:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "7863:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7874:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7879:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7870:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7870:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7863:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7650:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7658:3:19", + "type": "" + } + ], + "src": "7516:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8040:221:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8050:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8116:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8121:2:19", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8057:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "8057:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8050:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8145:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8150:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8141:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8141:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8154:34:19", + "type": "", + "value": "dCLM8::delegateBySig: invalid no" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8134:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8134:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8134:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8210:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8215:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8206:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8206:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8220:5:19", + "type": "", + "value": "nce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8199:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8199:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8199:27:19" + }, + { + "nodeType": "YulAssignment", + "src": "8236:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8247:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8252:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8243:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8243:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8236:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8028:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8036:3:19", + "type": "" + } + ], + "src": "7894:367:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8413:247:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8423:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8489:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8494:2:19", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8430:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "8430:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8423:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8518:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8523:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8514:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8514:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8527:34:19", + "type": "", + "value": "dCLM8::_transferTokens: cannot t" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8507:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8507:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8507:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8583:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8588:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8579:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8579:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8593:31:19", + "type": "", + "value": "ransfer from the zero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8572:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8572:53:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8572:53:19" + }, + { + "nodeType": "YulAssignment", + "src": "8635:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8646:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8651:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8642:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8642:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8635:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8401:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8409:3:19", + "type": "" + } + ], + "src": "8267:393:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8812:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8822:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8888:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8893:2:19", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8829:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "8829:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8822:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8917:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8922:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8913:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8913:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8926:34:19", + "type": "", + "value": "dCLM8::delegateBySig: signature " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8906:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8906:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8906:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8982:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8987:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8978:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8978:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "8992:9:19", + "type": "", + "value": "expired" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8971:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8971:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8971:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "9012:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9023:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9028:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9019:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9019:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9012:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8800:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8808:3:19", + "type": "" + } + ], + "src": "8666:371:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9189:182:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9199:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9265:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9270:2:19", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9206:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "9206:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9199:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9294:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9299:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9290:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9290:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9303:32:19", + "type": "", + "value": "dCLM8::_burn: must be governor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9283:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9283:53:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9283:53:19" + }, + { + "nodeType": "YulAssignment", + "src": "9346:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9357:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9362:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9353:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9353:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9346:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9177:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9185:3:19", + "type": "" + } + ], + "src": "9043:328:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9523:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9533:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9599:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9604:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9540:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "9540:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9533:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9628:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9633:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9624:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9624:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9637:34:19", + "type": "", + "value": "dCLM8::_burn: burn from the zero" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9617:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9617:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9617:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9693:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9698:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9689:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9689:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "9703:10:19", + "type": "", + "value": " address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9682:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9682:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9682:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "9724:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9735:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9740:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9731:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9731:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9724:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9511:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9519:3:19", + "type": "" + } + ], + "src": "9377:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9820:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9837:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9860:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9842:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "9842:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9830:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9830:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9808:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9815:3:19", + "type": "" + } + ], + "src": "9755:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9942:52:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9959:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9981:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nodeType": "YulIdentifier", + "src": "9964:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "9964:23:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9952:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9952:36:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9952:36:19" + } + ] + }, + "name": "abi_encode_t_uint32_to_t_uint32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9930:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9937:3:19", + "type": "" + } + ], + "src": "9879:115:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10061:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10078:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10099:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "10083:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "10083:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10071:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10071:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10071:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10049:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10056:3:19", + "type": "" + } + ], + "src": "10000:112:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10182:65:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10199:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10234:5:19" + } + ], + "functionName": { + "name": "convert_t_uint96_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "10204:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "10204:36:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10192:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10192:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10192:49:19" + } + ] + }, + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10170:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10177:3:19", + "type": "" + } + ], + "src": "10118:129:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10316:52:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10333:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10355:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "10338:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "10338:23:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10326:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10326:36:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10326:36:19" + } + ] + }, + "name": "abi_encode_t_uint96_to_t_uint96_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10304:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10311:3:19", + "type": "" + } + ], + "src": "10253:115:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10619:418:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10630:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10781:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "10637:142:19" + }, + "nodeType": "YulFunctionCall", + "src": "10637:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10630:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10857:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10866:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "10795:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "10795:75:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10795:75:19" + }, + { + "nodeType": "YulAssignment", + "src": "10879:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10890:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10895:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10886:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10886:12:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10879:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10970:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10979:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "10908:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "10908:75:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10908:75:19" + }, + { + "nodeType": "YulAssignment", + "src": "10992:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11003:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11008:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10999:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10999:12:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10992:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11021:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11028:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11021:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10590:3:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10596:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10604:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10615:3:19", + "type": "" + } + ], + "src": "10374:663:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11141:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11151:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11163:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11174:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11159:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11159:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11151:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11231:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11244:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11255:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11240:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11240:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11187:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "11187:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11187:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11113:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11125:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11136:4:19", + "type": "" + } + ], + "src": "11043:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11363:118:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11373:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11385:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11396:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11381:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11373:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11447:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11460:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11471:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11456:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11456:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "11409:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "11409:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11409:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11335:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11347:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11358:4:19", + "type": "" + } + ], + "src": "11271:210:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11585:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11595:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11607:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11618:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11603:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11603:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11595:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11675:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11688:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11699:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11684:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "11631:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "11631:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11631:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11557:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11569:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11580:4:19", + "type": "" + } + ], + "src": "11487:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11897:371:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11907:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11919:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11930:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11915:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11915:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11907:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11988:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12001:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12012:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11997:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11997:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "11944:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "11944:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11944:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12069:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12082:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12093:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12078:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12078:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12025:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12025:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12025:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12151:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12164:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12175:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12160:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12160:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12107:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12107:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12107:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "12233:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12246:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12257:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12242:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12242:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12189:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12189:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12189:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11845:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11857:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11865:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11873:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11881:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11892:4:19", + "type": "" + } + ], + "src": "11715:553:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12456:371:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12466:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12478:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12489:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12474:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12474:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12466:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12547:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12560:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12571:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12556:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "12503:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12503:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12503:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12628:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12641:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12652:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12637:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12637:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "12584:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12584:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12584:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12710:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12723:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12734:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12719:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12719:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12666:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12666:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12666:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "12792:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12805:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12816:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12801:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12801:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12748:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "12748:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12748:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12404:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12416:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12424:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12432:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12440:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12451:4:19", + "type": "" + } + ], + "src": "12274:553:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13011:367:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13021:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13033:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13044:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13029:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13029:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13021:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13102:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13115:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13126:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13111:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13111:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "13058:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "13058:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13058:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13179:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13192:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13188:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "13139:39:19" + }, + "nodeType": "YulFunctionCall", + "src": "13139:68:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13139:68:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "13261:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13274:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13285:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13270:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "13217:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "13217:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13217:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "13343:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13356:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13367:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13352:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "13299:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "13299:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13299:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12959:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "12971:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12979:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12987:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12995:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13006:4:19", + "type": "" + } + ], + "src": "12833:545:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13502:195:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13512:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13524:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13535:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13520:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13520:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13512:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13559:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13570:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13555:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13555:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13578:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13584:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13574:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13574:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13548:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13548:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13548:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "13604:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13676:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13685:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13612:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "13612:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13604:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13474:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13486:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13497:4:19", + "type": "" + } + ], + "src": "13384:313:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13874:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13884:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13896:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13907:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13892:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13892:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13884:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13931:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13942:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13927:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13950:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13956:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13946:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13946:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13920:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13920:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13920:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "13976:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14110:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13984:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "13984:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13976:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13854:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13869:4:19", + "type": "" + } + ], + "src": "13703:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14299:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14309:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14321:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14332:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14317:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14317:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14309:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14356:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14367:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14352:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14375:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14381:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14371:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14371:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14345:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14345:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14345:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "14401:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14535:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14409:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "14409:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14401:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14279:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14294:4:19", + "type": "" + } + ], + "src": "14128:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14724:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14734:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14746:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14757:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14742:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14742:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14734:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14781:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14792:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14777:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14800:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14806:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14796:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14796:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14770:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14770:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14770:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "14826:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14960:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14834:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "14834:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14826:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14704:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14719:4:19", + "type": "" + } + ], + "src": "14553:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15149:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15159:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15171:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15182:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15167:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15167:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15159:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15206:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15217:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15202:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15225:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15231:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15221:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15221:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15195:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15195:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15195:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "15251:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15385:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15259:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "15259:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15251:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15129:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15144:4:19", + "type": "" + } + ], + "src": "14978:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15574:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15584:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15596:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15607:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15592:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15592:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15584:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15631:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15642:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15627:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15650:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15656:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15646:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15646:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15620:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15620:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15620:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "15676:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15810:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15684:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "15684:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15676:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15554:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15569:4:19", + "type": "" + } + ], + "src": "15403:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15999:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16009:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16021:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16032:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16017:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16017:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16009:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16056:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16067:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16052:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16075:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16081:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16071:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16071:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16045:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16045:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16045:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "16101:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16235:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16109:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "16109:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16101:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15979:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15994:4:19", + "type": "" + } + ], + "src": "15828:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16424:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16434:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16446:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16457:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16442:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16442:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16434:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16481:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16492:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16477:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16500:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16506:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16496:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16496:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16470:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16470:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16470:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "16526:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16660:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16534:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "16534:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16526:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16404:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16419:4:19", + "type": "" + } + ], + "src": "16253:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16849:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16859:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16871:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16882:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16867:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16867:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16859:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16906:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16917:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16902:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16925:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16931:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16921:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16921:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16895:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16895:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16895:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "16951:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17085:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16959:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "16959:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16951:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16829:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16844:4:19", + "type": "" + } + ], + "src": "16678:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17274:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17284:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17296:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17307:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17292:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17292:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17284:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17331:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17342:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17327:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17350:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17356:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17346:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17346:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17320:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17320:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17320:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "17376:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17510:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17384:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "17384:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17376:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17254:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17269:4:19", + "type": "" + } + ], + "src": "17103:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17699:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17709:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17721:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17732:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17717:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17717:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17709:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17756:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17767:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17752:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17752:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17775:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17781:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17771:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17771:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17745:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17745:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17745:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "17801:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17935:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17809:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "17809:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17801:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17679:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17694:4:19", + "type": "" + } + ], + "src": "17528:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18124:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18134:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18146:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18157:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18142:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18142:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18134:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18181:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18192:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18177:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18200:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18206:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18196:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18196:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18170:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18170:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18170:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "18226:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18360:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18234:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "18234:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18226:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18104:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18119:4:19", + "type": "" + } + ], + "src": "17953:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18476:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18486:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18498:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18509:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18494:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18494:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18486:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "18566:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18579:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18590:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18575:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18575:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "18522:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "18522:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18522:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18448:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "18460:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18471:4:19", + "type": "" + } + ], + "src": "18378:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18702:122:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18712:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18724:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18735:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18720:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18720:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18712:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "18790:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18803:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18814:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18799:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18799:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint32_to_t_uint32_fromStack", + "nodeType": "YulIdentifier", + "src": "18748:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "18748:69:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18748:69:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18674:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "18686:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18697:4:19", + "type": "" + } + ], + "src": "18606:218:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18952:202:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18962:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18974:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18985:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18970:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18970:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18962:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19040:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19053:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19064:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19049:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19049:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint32_to_t_uint32_fromStack", + "nodeType": "YulIdentifier", + "src": "18998:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "18998:69:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18998:69:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "19119:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19132:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19143:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19128:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19128:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint96_fromStack", + "nodeType": "YulIdentifier", + "src": "19077:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "19077:70:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19077:70:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint32_t_uint96__to_t_uint32_t_uint96__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18916:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "18928:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "18936:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18947:4:19", + "type": "" + } + ], + "src": "18830:324:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19254:120:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19264:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19276:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19287:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19272:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19272:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19264:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19340:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19353:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19364:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19349:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19349:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "19300:39:19" + }, + "nodeType": "YulFunctionCall", + "src": "19300:67:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19300:67:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19226:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19238:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19249:4:19", + "type": "" + } + ], + "src": "19160:214:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19477:123:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19487:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19499:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19510:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19495:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19495:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19487:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19566:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19579:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19590:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19575:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19575:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19523:42:19" + }, + "nodeType": "YulFunctionCall", + "src": "19523:70:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19523:70:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19449:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19461:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19472:4:19", + "type": "" + } + ], + "src": "19380:220:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19702:122:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19712:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19724:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19735:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19720:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19720:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19712:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19790:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19803:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19814:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19799:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19799:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint96_fromStack", + "nodeType": "YulIdentifier", + "src": "19748:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "19748:69:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19748:69:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19674:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19686:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19697:4:19", + "type": "" + } + ], + "src": "19606:218:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19954:204:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19964:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19976:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19987:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19972:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19972:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19964:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "20043:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20056:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20067:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20052:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20000:42:19" + }, + "nodeType": "YulFunctionCall", + "src": "20000:70:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20000:70:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "20123:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20136:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20147:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20132:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20132:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "20080:42:19" + }, + "nodeType": "YulFunctionCall", + "src": "20080:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20080:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint96_t_uint96__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19918:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "19930:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19938:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19949:4:19", + "type": "" + } + ], + "src": "19830:328:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20223:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20234:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20250:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "20244:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "20244:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20234:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20206:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20216:6:19", + "type": "" + } + ], + "src": "20164:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20365:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20382:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20387:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20375:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20375:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20375:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "20403:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20422:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20427:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20418:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20418:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "20403:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20337:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20342:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "20353:11:19", + "type": "" + } + ], + "src": "20269:169:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20558:34:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20568:18:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20583:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "20568:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20530:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20535:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "20546:11:19", + "type": "" + } + ], + "src": "20444:148:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20643:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20653:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20682:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "20664:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "20664:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "20653:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20625:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "20635:7:19", + "type": "" + } + ], + "src": "20598:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20742:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20752:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20777:5:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "20770:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20770:13:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "20763:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20763:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "20752:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20724:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "20734:7:19", + "type": "" + } + ], + "src": "20700:90:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20841:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20851:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20862:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "20851:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20823:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "20833:7:19", + "type": "" + } + ], + "src": "20796:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20924:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20934:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20949:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20956:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "20945:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20945:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "20934:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20906:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "20916:7:19", + "type": "" + } + ], + "src": "20879:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21056:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21066:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21077:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "21066:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21038:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "21048:7:19", + "type": "" + } + ], + "src": "21011:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21138:49:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21148:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21163:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21170:10:19", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "21159:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21159:22:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "21148:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21120:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "21130:7:19", + "type": "" + } + ], + "src": "21094:93:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21236:43:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21246:27:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21261:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21268:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "21257:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21257:16:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "21246:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21218:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "21228:7:19", + "type": "" + } + ], + "src": "21193:86:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21329:65:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21339:49:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21354:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21361:26:19", + "type": "", + "value": "0xffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "21350:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21350:38:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "21339:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21311:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "21321:7:19", + "type": "" + } + ], + "src": "21285:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21459:52:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21469:36:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21499:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "21482:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "21482:23:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "21469:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint96_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21439:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "21449:9:19", + "type": "" + } + ], + "src": "21400:111:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21566:258:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21576:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21585:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "21580:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21645:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "21670:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21675:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21666:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21666:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "21689:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21694:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21685:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21685:11:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21679:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "21679:18:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21659:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21659:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21659:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21606:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21609:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "21603:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "21603:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "21617:19:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21619:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21628:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21631:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21624:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21624:10:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21619:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "21599:3:19", + "statements": [] + }, + "src": "21595:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21742:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "21792:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21797:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21788:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21788:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21806:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21781:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21781:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21781:27:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21723:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21726:6:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "21720:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "21720:13:19" + }, + "nodeType": "YulIf", + "src": "21717:2:19" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "21548:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "21553:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21558:6:19", + "type": "" + } + ], + "src": "21517:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21877:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21887:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21898:5:19" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "21887:7:19" + } + ] + } + ] + }, + "name": "leftAlign_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21859:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "21869:7:19", + "type": "" + } + ], + "src": "21830:79:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21963:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21973:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21991:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21998:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21987:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22007:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "22003:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22003:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "21983:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21983:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "21973:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21946:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "21956:6:19", + "type": "" + } + ], + "src": "21915:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22066:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22123:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22132:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22135:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22125:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22125:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22125:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22089:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22114:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "22096:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "22096:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22086:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22086:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22079:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22079:43:19" + }, + "nodeType": "YulIf", + "src": "22076:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22059:5:19", + "type": "" + } + ], + "src": "22023:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22194:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22251:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22260:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22263:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22253:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22253:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22253:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22217:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22242:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "22224:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "22224:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22214:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22214:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22207:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22207:43:19" + }, + "nodeType": "YulIf", + "src": "22204:2:19" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22187:5:19", + "type": "" + } + ], + "src": "22151:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22322:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22379:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22388:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22391:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22381:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22381:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22381:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22345:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22370:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "22352:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "22352:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22342:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22342:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22335:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22335:43:19" + }, + "nodeType": "YulIf", + "src": "22332:2:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22315:5:19", + "type": "" + } + ], + "src": "22279:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22449:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22505:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22514:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22517:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22507:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22507:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22507:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22472:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22496:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nodeType": "YulIdentifier", + "src": "22479:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "22479:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22469:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22469:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22462:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22462:42:19" + }, + "nodeType": "YulIf", + "src": "22459:2:19" + } + ] + }, + "name": "validator_revert_t_uint32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22442:5:19", + "type": "" + } + ], + "src": "22407:120:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22574:77:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22629:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22638:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22641:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22631:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22631:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22631:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22597:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22620:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "22604:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "22604:22:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22594:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22594:33:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22587:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22587:41:19" + }, + "nodeType": "YulIf", + "src": "22584:2:19" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22567:5:19", + "type": "" + } + ], + "src": "22533:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22699:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22755:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22764:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22767:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "22757:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22757:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22757:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22722:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22746:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "22729:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "22729:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "22719:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "22719:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "22712:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22712:42:19" + }, + "nodeType": "YulIf", + "src": "22709:2:19" + } + ] + }, + "name": "validator_revert_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22692:5:19", + "type": "" + } + ], + "src": "22657:120:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\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 abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint32(value)\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_t_uint96(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint96(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint96(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint96(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"dCLM8::_burn: burn amount exceed\")\n\n mstore(add(pos, 32), \"s balance\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"dCLM::setGovernor: governor can \")\n\n mstore(add(pos, 32), \"only be set once\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n\n mstore(add(pos, 0), \"dCLM8::setGovernor: must be init\")\n\n mstore(add(pos, 32), \"ial holder\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n\n mstore(add(pos, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n end := add(pos, 2)\n }\n\n function abi_encode_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"dCLM8::delegateBySig: invalid si\")\n\n mstore(add(pos, 32), \"gnature\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 59)\n\n mstore(add(pos, 0), \"dCLM8::_transferTokens: cannot t\")\n\n mstore(add(pos, 32), \"ransfer to the zero address\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"dCLM8::getPriorVotes: not yet de\")\n\n mstore(add(pos, 32), \"termined\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"dCLM8::delegateBySig: invalid no\")\n\n mstore(add(pos, 32), \"nce\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n\n mstore(add(pos, 0), \"dCLM8::_transferTokens: cannot t\")\n\n mstore(add(pos, 32), \"ransfer from the zero address\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"dCLM8::delegateBySig: signature \")\n\n mstore(add(pos, 32), \"expired\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n\n mstore(add(pos, 0), \"dCLM8::_burn: must be governor\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"dCLM8::_burn: burn from the zero\")\n\n mstore(add(pos, 32), \" address\")\n\n end := add(pos, 64)\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_t_uint32_to_t_uint32_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint32(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_t_uint96_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_uint96_to_t_uint256(value))\n }\n\n function abi_encode_t_uint96_to_t_uint96_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_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 }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_address_to_t_address_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882_to_t_string_memory_ptr_fromStack( tail)\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 abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint32_t_uint96__to_t_uint32_t_uint96__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint96_to_t_uint96_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint96_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint96_to_t_uint96_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint96_t_uint96__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint96_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint96_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function cleanup_t_uint96(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff)\n }\n\n function convert_t_uint96_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint96(value)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint96(value) {\n if iszero(eq(value, cleanup_t_uint96(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101735760003560e01c8063782d6fe1116100de578063b72218e311610097578063c4e41b2211610071578063c4e41b2214610488578063dd62ed3e146104a6578063e7a324dc146104d6578063f1127ed8146104f457610173565b8063b72218e314610432578063c3cda52014610450578063c42cf5351461046c57610173565b8063782d6fe1146103365780637ecebe001461036657806395d89b4114610396578063a9059cbb146103b4578063ae80d9de146103e4578063b4b5ea571461040257610173565b8063313ce56711610130578063313ce56714610250578063587cde1e1461026e5780635c19a95c1461029e5780636fcfff45146102ba57806370a08231146102ea57806372d3ee9e1461031a57610173565b806306fdde0314610178578063095ea7b3146101965780630c340a24146101c657806318160ddd146101e457806320606b701461020257806323b872dd14610220575b600080fd5b610180610525565b60405161018d9190612fa2565b60405180910390f35b6101b060048036038101906101ab91906127ca565b61055e565b6040516101bd9190612e9d565b60405180910390f35b6101ce6106f1565b6040516101db9190612e82565b60405180910390f35b6101ec610717565b6040516101f99190613124565b60405180910390f35b61020a61071d565b6040516102179190612eb8565b60405180910390f35b61023a6004803603810190610235919061277b565b610741565b6040516102479190612e9d565b60405180910390f35b6102586109d5565b6040516102659190613183565b60405180910390f35b61028860048036038101906102839190612716565b6109da565b6040516102959190612e82565b60405180910390f35b6102b860048036038101906102b39190612716565b610a0d565b005b6102d460048036038101906102cf9190612716565b610a1a565b6040516102e1919061313f565b60405180910390f35b61030460048036038101906102ff9190612716565b610a3d565b6040516103119190613124565b60405180910390f35b610334600480360381019061032f91906128cb565b610aac565b005b610350600480360381019061034b91906127ca565b610d5f565b60405161035d91906131b9565b60405180910390f35b610380600480360381019061037b9190612716565b61116e565b60405161038d9190613124565b60405180910390f35b61039e611186565b6040516103ab9190612fa2565b60405180910390f35b6103ce60048036038101906103c991906127ca565b6111bf565b6040516103db9190612e9d565b60405180910390f35b6103ec6111fc565b6040516103f99190612e82565b60405180910390f35b61041c60048036038101906104179190612716565b611226565b60405161042991906131b9565b60405180910390f35b61043a611314565b6040516104479190612e82565b60405180910390f35b61046a60048036038101906104659190612806565b61133a565b005b61048660048036038101906104819190612716565b6115f7565b005b61049061175c565b60405161049d9190613124565b60405180910390f35b6104c060048036038101906104bb919061273f565b611765565b6040516104cd9190613124565b60405180910390f35b6104de611812565b6040516104eb9190612eb8565b60405180910390f35b61050e6004803603810190610509919061288f565b611836565b60405161051c92919061315a565b60405180910390f35b6040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e00000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156105b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506105d6565b6105d38360405180606001604052806026815260200161348b6026913961188f565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516106de919061319e565b60405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108048560405180606001604052806026815260200161348b6026913961188f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561087e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156109bc5760006108a883836040518060600160405280603e815260200161344d603e91396118ed565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109b2919061319e565b60405180910390a3505b6109c787878361195e565b600193505050509392505050565b601281565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a173382611de3565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613104565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906130e4565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050816bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90612fc4565b60405180910390fd5b818103600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550816bffffffffffffffffffffffff166000808282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d52919061319e565b60405180910390a3505050565b6000438210610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a90613064565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610e10576000915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610f1257600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610f93576000915050611168565b6000806001830390505b8163ffffffff168163ffffffff1611156110ea576000600283830363ffffffff1681610fc557fe5b0482039050610fd261266a565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff1614156110c257806020015195505050505050611168565b86816000015163ffffffff1610156110dc578193506110e3565b6001820392505b5050610f9d565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600581526020017f64434c4d3800000000000000000000000000000000000000000000000000000081525081565b6000806111e4836040518060600160405280602781526020016134266027913961188f565b90506111f133858361195e565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161129057600061130c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e000000000000000000000000000000815250805190602001206113a2611fa3565b306040516020016113b69493929190612f18565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016114079493929190612ed3565b60405160208183030381529060405280519060200120905060008282604051602001611434929190612e4b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516114719493929190612f5d565b6020604051602081039080840390855afa158015611493573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613024565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613084565b60405180910390fd5b874211156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906130c4565b60405180910390fd5b6115eb818b611de3565b50505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613004565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612fe4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612fa2565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489190612fa2565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c5906130a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613044565b60405180910390fd5b611ab8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603781526020016133be603791396118ed565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b9f600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603181526020016133f560319139611fb0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c69919061319e565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d1457611d0f8283611de3565b611dde565b611ddd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612026565b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f9d828483612026565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612fa2565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207057506000816bffffffffffffffffffffffff16115b1561231c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121c8576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161211357600061218f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121b682856040518060600160405280602981526020016134b1602991396118ed565b90506121c486848484612321565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461231b576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116122665760006122e2565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612309828560405180606001604052806028815260200161339660289139611fb0565b905061231785848484612321565b5050505b5b505050565b6000612345436040518060600160405280603581526020016134da60359139612614565b905060008463ffffffff161180156123da57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156124755781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506125bd565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516126059291906131d4565b60405180910390a25050505050565b600064010000000083108290612660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126579190612fa2565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506126a78161330b565b92915050565b6000813590506126bc81613322565b92915050565b6000813590506126d181613339565b92915050565b6000813590506126e681613350565b92915050565b6000813590506126fb81613367565b92915050565b6000813590506127108161337e565b92915050565b60006020828403121561272857600080fd5b600061273684828501612698565b91505092915050565b6000806040838503121561275257600080fd5b600061276085828601612698565b925050602061277185828601612698565b9150509250929050565b60008060006060848603121561279057600080fd5b600061279e86828701612698565b93505060206127af86828701612698565b92505060406127c0868287016126c2565b9150509250925092565b600080604083850312156127dd57600080fd5b60006127eb85828601612698565b92505060206127fc858286016126c2565b9150509250929050565b60008060008060008060c0878903121561281f57600080fd5b600061282d89828a01612698565b965050602061283e89828a016126c2565b955050604061284f89828a016126c2565b945050606061286089828a016126ec565b935050608061287189828a016126ad565b92505060a061288289828a016126ad565b9150509295509295509295565b600080604083850312156128a257600080fd5b60006128b085828601612698565b92505060206128c1858286016126d7565b9150509250929050565b600080604083850312156128de57600080fd5b60006128ec85828601612698565b92505060206128fd85828601612701565b9150509250929050565b61291081613224565b82525050565b61291f81613236565b82525050565b61292e81613242565b82525050565b61294561294082613242565b6132f0565b82525050565b6000612956826131fd565b6129608185613208565b93506129708185602086016132bd565b612979816132fa565b840191505092915050565b6000612991602983613208565b91507f64434c4d383a3a5f6275726e3a206275726e20616d6f756e742065786365656460008301527f732062616c616e636500000000000000000000000000000000000000000000006020830152604082019050919050565b60006129f7603083613208565b91507f64434c4d3a3a736574476f7665726e6f723a20676f7665726e6f722063616e2060008301527f6f6e6c7920626520736574206f6e6365000000000000000000000000000000006020830152604082019050919050565b6000612a5d602a83613208565b91507f64434c4d383a3a736574476f7665726e6f723a206d75737420626520696e697460008301527f69616c20686f6c646572000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac3600283613219565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612b03602783613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c696420736960008301527f676e6174757265000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b69603b83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e7366657220746f20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000612bcf602883613208565b91507f64434c4d383a3a6765745072696f72566f7465733a206e6f742079657420646560008301527f7465726d696e65640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c35602383613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c6964206e6f60008301527f6e636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c9b603d83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e736665722066726f6d20746865207a65726f20616464726573730000006020830152604082019050919050565b6000612d01602783613208565b91507f64434c4d383a3a64656c656761746542795369673a207369676e61747572652060008301527f65787069726564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d67601e83613208565b91507f64434c4d383a3a5f6275726e3a206d75737420626520676f7665726e6f7200006000830152602082019050919050565b6000612da7602883613208565b91507f64434c4d383a3a5f6275726e3a206275726e2066726f6d20746865207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b612e098161326c565b82525050565b612e1881613276565b82525050565b612e2781613286565b82525050565b612e36816132ab565b82525050565b612e4581613293565b82525050565b6000612e5682612ab6565b9150612e628285612934565b602082019150612e728284612934565b6020820191508190509392505050565b6000602082019050612e976000830184612907565b92915050565b6000602082019050612eb26000830184612916565b92915050565b6000602082019050612ecd6000830184612925565b92915050565b6000608082019050612ee86000830187612925565b612ef56020830186612907565b612f026040830185612e00565b612f0f6060830184612e00565b95945050505050565b6000608082019050612f2d6000830187612925565b612f3a6020830186612925565b612f476040830185612e00565b612f546060830184612907565b95945050505050565b6000608082019050612f726000830187612925565b612f7f6020830186612e1e565b612f8c6040830185612925565b612f996060830184612925565b95945050505050565b60006020820190508181036000830152612fbc818461294b565b905092915050565b60006020820190508181036000830152612fdd81612984565b9050919050565b60006020820190508181036000830152612ffd816129ea565b9050919050565b6000602082019050818103600083015261301d81612a50565b9050919050565b6000602082019050818103600083015261303d81612af6565b9050919050565b6000602082019050818103600083015261305d81612b5c565b9050919050565b6000602082019050818103600083015261307d81612bc2565b9050919050565b6000602082019050818103600083015261309d81612c28565b9050919050565b600060208201905081810360008301526130bd81612c8e565b9050919050565b600060208201905081810360008301526130dd81612cf4565b9050919050565b600060208201905081810360008301526130fd81612d5a565b9050919050565b6000602082019050818103600083015261311d81612d9a565b9050919050565b60006020820190506131396000830184612e00565b92915050565b60006020820190506131546000830184612e0f565b92915050565b600060408201905061316f6000830185612e0f565b61317c6020830184612e3c565b9392505050565b60006020820190506131986000830184612e1e565b92915050565b60006020820190506131b36000830184612e2d565b92915050565b60006020820190506131ce6000830184612e3c565b92915050565b60006040820190506131e96000830185612e2d565b6131f66020830184612e2d565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061322f8261324c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132b682613293565b9050919050565b60005b838110156132db5780820151818401526020810190506132c0565b838111156132ea576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61331481613224565b811461331f57600080fd5b50565b61332b81613242565b811461333657600080fd5b50565b6133428161326c565b811461334d57600080fd5b50565b61335981613276565b811461336457600080fd5b50565b61337081613286565b811461337b57600080fd5b50565b61338781613293565b811461339257600080fd5b5056fe64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777364434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e636564434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777364434c4d383a3a7472616e736665723a20616d6f756e742065786365656473203936206269747364434c4d383a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e636564434c4d383a3a617070726f76653a20616d6f756e742065786365656473203936206269747364434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f777364434c4d383a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212209e2b838a499d4a780857e8a99e0123f73d9723b55648df6f08017e56b99aca3164736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x173 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB72218E3 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC4E41B22 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4E41B22 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x4A6 JUMPI DUP1 PUSH4 0xE7A324DC EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x4F4 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0xB72218E3 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0xC42CF535 EQ PUSH2 0x46C JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0xAE80D9DE EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x402 JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x72D3EE9E EQ PUSH2 0x31A JUMPI PUSH2 0x173 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x178 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xC340A24 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x220 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 PUSH2 0x525 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18D SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CE PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EC PUSH2 0x717 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x71D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x277B JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x258 PUSH2 0x9D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x288 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA0D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x304 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FF SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0xA3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x334 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x28CB JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x350 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0xD5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x31B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x380 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37B SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x116E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39E PUSH2 0x1186 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AB SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0x27CA JUMP JUMPDEST PUSH2 0x11BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DB SWAP2 SWAP1 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EC PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x417 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x1226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x31B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43A PUSH2 0x1314 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x447 SWAP2 SWAP1 PUSH2 0x2E82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x465 SWAP2 SWAP1 PUSH2 0x2806 JUMP JUMPDEST PUSH2 0x133A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x2716 JUMP JUMPDEST PUSH2 0x15F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x490 PUSH2 0x175C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49D SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BB SWAP2 SWAP1 PUSH2 0x273F JUMP JUMPDEST PUSH2 0x1765 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CD SWAP2 SWAP1 PUSH2 0x3124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4DE PUSH2 0x1812 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x50E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x509 SWAP2 SWAP1 PUSH2 0x288F JUMP JUMPDEST PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51C SWAP3 SWAP2 SWAP1 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20546F6B656E000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 EQ ISZERO PUSH2 0x5B1 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 POP PUSH2 0x5D6 JUMP JUMPDEST PUSH2 0x5D3 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x348B PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x6DE SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH2 0x804 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x348B PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x87E JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x9BC JUMPI PUSH1 0x0 PUSH2 0x8A8 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3E DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x344D PUSH1 0x3E SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9B2 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMPDEST PUSH2 0x9C7 DUP8 DUP8 DUP4 PUSH2 0x195E JUMP JUMPDEST PUSH1 0x1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xA17 CALLER DUP3 PUSH2 0x1DE3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xB1C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB13 SWAP1 PUSH2 0x3104 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x30E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xC67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xD52 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9A SWAP1 PUSH2 0x3064 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0xE10 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND GT PUSH2 0xF12 JUMPI PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP4 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST DUP3 PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP1 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xF93 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1168 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 SUB SWAP1 POP JUMPDEST DUP2 PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x10EA JUMPI PUSH1 0x0 PUSH1 0x2 DUP4 DUP4 SUB PUSH4 0xFFFFFFFF AND DUP2 PUSH2 0xFC5 JUMPI INVALID JUMPDEST DIV DUP3 SUB SWAP1 POP PUSH2 0xFD2 PUSH2 0x266A JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP DUP7 DUP2 PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND EQ ISZERO PUSH2 0x10C2 JUMPI DUP1 PUSH1 0x20 ADD MLOAD SWAP6 POP POP POP POP POP POP PUSH2 0x1168 JUMP JUMPDEST DUP7 DUP2 PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND LT ISZERO PUSH2 0x10DC JUMPI DUP2 SWAP4 POP PUSH2 0x10E3 JUMP JUMPDEST PUSH1 0x1 DUP3 SUB SWAP3 POP JUMPDEST POP POP PUSH2 0xF9D JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64434C4D38000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11E4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3426 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x188F JUMP JUMPDEST SWAP1 POP PUSH2 0x11F1 CALLER DUP6 DUP4 PUSH2 0x195E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT PUSH2 0x1290 JUMPI PUSH1 0x0 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP4 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20546F6B656E000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x13A2 PUSH2 0x1FA3 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1407 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1434 SWAP3 SWAP2 SWAP1 PUSH2 0x2E4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1471 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1493 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1506 SWAP1 PUSH2 0x3024 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE DUP10 EQ PUSH2 0x159E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1595 SWAP1 PUSH2 0x3084 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP8 TIMESTAMP GT ISZERO PUSH2 0x15E1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D8 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15EB DUP2 DUP12 PUSH2 0x1DE3 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x167E SWAP1 PUSH2 0x3004 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1718 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x170F SWAP1 PUSH2 0x2FE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF DUP2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 PUSH13 0x1000000000000000000000000 DUP4 LT DUP3 SWAP1 PUSH2 0x18E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18DA SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO DUP3 SWAP1 PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1948 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x19CE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19C5 SWAP1 PUSH2 0x30A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1A3E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A35 SWAP1 PUSH2 0x3044 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AB8 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33BE PUSH1 0x37 SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1B9F PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x31 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33F5 PUSH1 0x31 SWAP2 CODECOPY PUSH2 0x1FB0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C69 SWAP2 SWAP1 PUSH2 0x319E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D0F DUP3 DUP4 PUSH2 0x1DE3 JUMP JUMPDEST PUSH2 0x1DDE JUMP JUMPDEST PUSH2 0x1DDD PUSH1 0x5 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x2026 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH1 0x5 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F9D DUP3 DUP5 DUP4 PUSH2 0x2026 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP6 ADD SWAP1 POP DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT ISZERO DUP4 SWAP1 PUSH2 0x201A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2011 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x2070 JUMPI POP PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT JUMPDEST ISZERO PUSH2 0x231C JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x21C8 JUMPI PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH4 0xFFFFFFFF AND GT PUSH2 0x2113 JUMPI PUSH1 0x0 PUSH2 0x218F JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x21B6 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B1 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x18ED JUMP JUMPDEST SWAP1 POP PUSH2 0x21C4 DUP7 DUP5 DUP5 DUP5 PUSH2 0x2321 JUMP JUMPDEST POP POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x231B JUMPI PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH4 0xFFFFFFFF AND GT PUSH2 0x2266 JUMPI PUSH1 0x0 PUSH2 0x22E2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP5 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2309 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3396 PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x1FB0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2317 DUP6 DUP5 DUP5 DUP5 PUSH2 0x2321 JUMP JUMPDEST POP POP POP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2345 NUMBER PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x35 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34DA PUSH1 0x35 SWAP2 CODECOPY PUSH2 0x2614 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 PUSH4 0xFFFFFFFF AND GT DUP1 ISZERO PUSH2 0x23DA JUMPI POP DUP1 PUSH4 0xFFFFFFFF AND PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP8 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x2475 JUMPI DUP2 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH1 0x1 DUP8 SUB PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x25BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 DUP5 ADD PUSH1 0x7 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2605 SWAP3 SWAP2 SWAP1 PUSH2 0x31D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0x100000000 DUP4 LT DUP3 SWAP1 PUSH2 0x2660 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2657 SWAP2 SWAP1 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26A7 DUP2 PUSH2 0x330B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26BC DUP2 PUSH2 0x3322 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26D1 DUP2 PUSH2 0x3339 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26E6 DUP2 PUSH2 0x3350 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26FB DUP2 PUSH2 0x3367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2710 DUP2 PUSH2 0x337E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2736 DUP5 DUP3 DUP6 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2760 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2771 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2790 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x279E DUP7 DUP3 DUP8 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x27AF DUP7 DUP3 DUP8 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x27C0 DUP7 DUP3 DUP8 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x27EB DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x27FC DUP6 DUP3 DUP7 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x281F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x282D DUP10 DUP3 DUP11 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x283E DUP10 DUP3 DUP11 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x284F DUP10 DUP3 DUP11 ADD PUSH2 0x26C2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x2860 DUP10 DUP3 DUP11 ADD PUSH2 0x26EC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x2871 DUP10 DUP3 DUP11 ADD PUSH2 0x26AD JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2882 DUP10 DUP3 DUP11 ADD PUSH2 0x26AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28B0 DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28C1 DUP6 DUP3 DUP7 ADD PUSH2 0x26D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28EC DUP6 DUP3 DUP7 ADD PUSH2 0x2698 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28FD DUP6 DUP3 DUP7 ADD PUSH2 0x2701 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2910 DUP2 PUSH2 0x3224 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x291F DUP2 PUSH2 0x3236 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x292E DUP2 PUSH2 0x3242 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2945 PUSH2 0x2940 DUP3 PUSH2 0x3242 JUMP JUMPDEST PUSH2 0x32F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2956 DUP3 PUSH2 0x31FD JUMP JUMPDEST PUSH2 0x2960 DUP2 DUP6 PUSH2 0x3208 JUMP JUMPDEST SWAP4 POP PUSH2 0x2970 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x32BD JUMP JUMPDEST PUSH2 0x2979 DUP2 PUSH2 0x32FA JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2991 PUSH1 0x29 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206275726E20616D6F756E7420657863656564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x732062616C616E63650000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29F7 PUSH1 0x30 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D3A3A736574476F7665726E6F723A20676F7665726E6F722063616E20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E6C7920626520736574206F6E636500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A5D PUSH1 0x2A DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A736574476F7665726E6F723A206D75737420626520696E6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x69616C20686F6C64657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AC3 PUSH1 0x2 DUP4 PUSH2 0x3219 JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B03 PUSH1 0x27 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A20696E76616C6964207369 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x676E617475726500000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B69 PUSH1 0x3B DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F7472616E73666572546F6B656E733A2063616E6E6F742074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72616E7366657220746F20746865207A65726F20616464726573730000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BCF PUSH1 0x28 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A6765745072696F72566F7465733A206E6F7420796574206465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726D696E6564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C35 PUSH1 0x23 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A20696E76616C6964206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E63650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH1 0x3D DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F7472616E73666572546F6B656E733A2063616E6E6F742074 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72616E736665722066726F6D20746865207A65726F2061646472657373000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D01 PUSH1 0x27 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A64656C656761746542795369673A207369676E617475726520 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6578706972656400000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D67 PUSH1 0x1E DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206D75737420626520676F7665726E6F720000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA7 PUSH1 0x28 DUP4 PUSH2 0x3208 JUMP JUMPDEST SWAP2 POP PUSH32 0x64434C4D383A3A5F6275726E3A206275726E2066726F6D20746865207A65726F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646472657373000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E09 DUP2 PUSH2 0x326C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E18 DUP2 PUSH2 0x3276 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E27 DUP2 PUSH2 0x3286 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E36 DUP2 PUSH2 0x32AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP2 PUSH2 0x3293 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E56 DUP3 PUSH2 0x2AB6 JUMP JUMPDEST SWAP2 POP PUSH2 0x2E62 DUP3 DUP6 PUSH2 0x2934 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x2E72 DUP3 DUP5 PUSH2 0x2934 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E97 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2907 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2EB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2916 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2ECD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2925 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2EE8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2EF5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2907 JUMP JUMPDEST PUSH2 0x2F02 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E00 JUMP JUMPDEST PUSH2 0x2F0F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2E00 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2F2D PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F3A PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F47 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E00 JUMP JUMPDEST PUSH2 0x2F54 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2907 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2F72 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F7F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2E1E JUMP JUMPDEST PUSH2 0x2F8C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2925 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2925 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FBC DUP2 DUP5 PUSH2 0x294B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FDD DUP2 PUSH2 0x2984 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2FFD DUP2 PUSH2 0x29EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x301D DUP2 PUSH2 0x2A50 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x303D DUP2 PUSH2 0x2AF6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x305D DUP2 PUSH2 0x2B5C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x307D DUP2 PUSH2 0x2BC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x309D DUP2 PUSH2 0x2C28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30BD DUP2 PUSH2 0x2C8E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30DD DUP2 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30FD DUP2 PUSH2 0x2D5A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x311D DUP2 PUSH2 0x2D9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3139 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E00 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3154 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E0F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x316F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E0F JUMP JUMPDEST PUSH2 0x317C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E3C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3198 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x31B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E2D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x31CE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x31E9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E2D JUMP JUMPDEST PUSH2 0x31F6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E2D JUMP JUMPDEST SWAP4 SWAP3 POP POP 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 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x322F DUP3 PUSH2 0x324C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B6 DUP3 PUSH2 0x3293 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32DB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x32C0 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32EA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3314 DUP2 PUSH2 0x3224 JUMP JUMPDEST DUP2 EQ PUSH2 0x331F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x332B DUP2 PUSH2 0x3242 JUMP JUMPDEST DUP2 EQ PUSH2 0x3336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3342 DUP2 PUSH2 0x326C JUMP JUMPDEST DUP2 EQ PUSH2 0x334D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3359 DUP2 PUSH2 0x3276 JUMP JUMPDEST DUP2 EQ PUSH2 0x3364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3370 DUP2 PUSH2 0x3286 JUMP JUMPDEST DUP2 EQ PUSH2 0x337B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3387 DUP2 PUSH2 0x3293 JUMP JUMPDEST DUP2 EQ PUSH2 0x3392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH5 0x434C4D383A GASPRICE 0x5F PUSH14 0x6F7665566F7465733A20766F7465 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E74206F766572666C6F777364434C4D383A3A5F7472 PUSH2 0x6E73 PUSH7 0x6572546F6B656E PUSH20 0x3A207472616E7366657220616D6F756E74206578 PUSH4 0x65656473 KECCAK256 PUSH3 0x616C61 PUSH15 0x636564434C4D383A3A5F7472616E73 PUSH7 0x6572546F6B656E PUSH20 0x3A207472616E7366657220616D6F756E74206F76 PUSH6 0x72666C6F7773 PUSH5 0x434C4D383A GASPRICE PUSH21 0x72616E736665723A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 PUSH5 0x434C4D383A GASPRICE PUSH21 0x72616E7366657246726F6D3A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E742065786365656473207370656E64657220616C6C PUSH16 0x77616E636564434C4D383A3A61707072 PUSH16 0x76653A20616D6F756E74206578636565 PUSH5 0x7320393620 PUSH3 0x697473 PUSH5 0x434C4D383A GASPRICE 0x5F PUSH14 0x6F7665566F7465733A20766F7465 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420756E646572666C6F777364434C4D383A3A5F77 PUSH19 0x697465436865636B706F696E743A20626C6F63 PUSH12 0x206E756D6265722065786365 PUSH6 0x647320333220 PUSH3 0x697473 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0x2B DUP4 DUP11 0x49 SWAP14 0x4A PUSH25 0x857E8A99E0123F73D9723B55648DF6F08017E56B99ACA3164 PUSH20 0x6F6C634300070300330000000000000000000000 ", + "sourceMap": "1755:14013:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1828:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5535:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2373:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2130:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7037:660;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2034:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2709:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7839:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3125:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6139:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11185:499;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9992:1187;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3652:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1935;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6501:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15389:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9351:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2243:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8362:795;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15492:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15293:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4933:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3457:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2989:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1828:49;;;;;;;;;;;;;;;;;;;:::o;5535:408::-;5603:4;5619:13;5664:2;5646:9;:21;5642:170;;;5699:2;5683:19;;5642:170;;;5742:59;5749:9;5742:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;5733:68;;5642:170;5856:6;5822:10;:22;5833:10;5822:22;;;;;;;;;;;;;;;:31;5845:7;5822:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;5899:7;5878:37;;5887:10;5878:37;;;5908:6;5878:37;;;;;;:::i;:::-;;;;;;;;5932:4;5925:11;;;5535:408;;;;:::o;2373:36::-;;;;;;;;;;;;;:::o;2130:37::-;;;;:::o;3244:122::-;3286:80;3244:122;:::o;7037:660::-;7119:4;7135:15;7153:10;7135:28;;7173:23;7199:10;:15;7210:3;7199:15;;;;;;;;;;;;;;;:24;7215:7;7199:24;;;;;;;;;;;;;;;;;;;;;;;;;7173:50;;7233:13;7249:59;7256:9;7249:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;7233:75;;7334:3;7323:14;;:7;:14;;;;:48;;;;;7368:2;7341:30;;:16;:30;;;;7323:48;7319:307;;;7387:19;7409:97;7415:16;7433:6;7409:97;;;;;;;;;;;;;;;;;:5;:97::i;:::-;7387:119;;7547:12;7520:10;:15;7531:3;7520:15;;;;;;;;;;;;;;;:24;7536:7;7520:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7593:7;7579:36;;7588:3;7579:36;;;7602:12;7579:36;;;;;;:::i;:::-;;;;;;;;7319:307;;7636:33;7652:3;7657;7662:6;7636:15;:33::i;:::-;7686:4;7679:11;;;;;7037:660;;;;;:::o;2034:35::-;2067:2;2034:35;:::o;2709:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7839:100::-;7900:32;7910:10;7922:9;7900;:32::i;:::-;7839:100;:::o;3125:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6139:106::-;6198:4;6221:8;:17;6230:7;6221:17;;;;;;;;;;;;;;;;;;;;;;;;;6214:24;;;;6139:106;;;:::o;11185:499::-;11278:1;11259:21;;:7;:21;;;;11251:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11357:8;;;;;;;;;;;11343:22;;:10;:22;;;11335:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11411:21;11435:8;:17;11444:7;11435:17;;;;;;;;;;;;;;;;;;;;;;;;;11411:41;;11488:6;11470:24;;:14;:24;;;;11462:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11587:6;11570:14;:23;11550:8;:17;11559:7;11550:17;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;11618:6;11603:21;;:11;;:21;;;;;;;;;;;11666:1;11640:37;;11649:7;11640:37;;;11670:6;11640:37;;;;;;:::i;:::-;;;;;;;;11185:499;;;:::o;9992:1187::-;10071:6;10111:12;10097:11;:26;10089:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10179:19;10201:14;:23;10216:7;10201:23;;;;;;;;;;;;;;;;;;;;;;;;;10179:45;;10254:1;10238:12;:17;;;10234:56;;;10278:1;10271:8;;;;;10234:56;10399:11;10347;:20;10359:7;10347:20;;;;;;;;;;;;;;;:38;10383:1;10368:12;:16;10347:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;10343:145;;10433:11;:20;10445:7;10433:20;;;;;;;;;;;;;;;:38;10469:1;10454:12;:16;10433:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;10426:51;;;;;10343:145;10582:11;10546;:20;10558:7;10546:20;;;;;;;;;;;;;;;:23;10567:1;10546:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;10542:86;;;10616:1;10609:8;;;;;10542:86;10638:12;10664;10694:1;10679:12;:16;10664:31;;10705:418;10720:5;10712:13;;:5;:13;;;10705:418;;;10741:13;10783:1;10774:5;10766;:13;10765:19;;;;;;;;10757:5;:27;10741:43;;10825:20;;:::i;:::-;10848:11;:20;10860:7;10848:20;;;;;;;;;;;;;;;:28;10869:6;10848:28;;;;;;;;;;;;;;;10825:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10910:11;10894:2;:12;;;:27;;;10890:223;;;10948:2;:8;;;10941:15;;;;;;;;;10890:223;10996:11;10981:2;:12;;;:26;;;10977:136;;;11035:6;11027:14;;10977:136;;;11097:1;11088:6;:10;11080:18;;10977:136;10705:418;;;;;11139:11;:20;11151:7;11139:20;;;;;;;;;;;;;;;:27;11160:5;11139:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;11132:40;;;;;9992:1187;;;;;:::o;3652:39::-;;;;;;;;;;;;;;;;;:::o;1935:::-;;;;;;;;;;;;;;;;;;;:::o;6501:235::-;6566:4;6582:13;6598:60;6605:9;6598:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;6582:76;;6668:40;6684:10;6696:3;6701:6;6668:15;:40::i;:::-;6725:4;6718:11;;;6501:235;;;;:::o;15389:97::-;15440:7;15466:13;;;;;;;;;;;15459:20;;15389:97;:::o;9351:219::-;9416:6;9434:19;9456:14;:23;9471:7;9456:23;;;;;;;;;;;;;;;;;;;;;;;;;9434:45;;9511:1;9496:12;:16;;;:67;;9562:1;9496:67;;;9515:11;:20;9527:7;9515:20;;;;;;;;;;;;;;;:38;9551:1;9536:12;:16;9515:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;9496:67;9489:74;;;9351:219;;;:::o;2243:28::-;;;;;;;;;;;;;:::o;8362:795::-;8477:23;3286:80;8557:4;;;;;;;;;;;;;;;;;8541:22;;;;;;8565:12;:10;:12::i;:::-;8587:4;8513:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8503:91;;;;;;8477:117;;8604:18;3503:71;8667:9;8678:5;8685:6;8635:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8625:68;;;;;;8604:89;;8703:14;8759:15;8776:10;8730:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8720:68;;;;;;8703:85;;8798:17;8818:26;8828:6;8836:1;8839;8842;8818:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8798:46;;8883:1;8862:23;;:9;:23;;;;8854:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8956:6;:17;8963:9;8956:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;8947:5;:28;8939:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9052:6;9033:15;:25;;9025:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9119:31;9129:9;9140;9119;:31::i;:::-;9112:38;;;;8362:795;;;;;;:::o;15492:273::-;15573:13;;;;;;;;;;;15559:27;;:10;:27;;;15551:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;15671:1;15651:22;;:8;;;;;;;;;;;:22;;;15643:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;15747:11;15736:8;;:22;;;;;;;;;;;;;;;;;;15492:273;:::o;15293:90::-;15342:4;15365:11;;15358:18;;15293:90;:::o;4933:134::-;5009:4;5032:10;:19;5043:7;5032:19;;;;;;;;;;;;;;;:28;5052:7;5032:28;;;;;;;;;;;;;;;;;;;;;;;;;5025:35;;;;4933:134;;;;:::o;3457:117::-;3503:71;3457:117;:::o;2989:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14616:158::-;14691:6;14721:5;14717:1;:9;14728:12;14709:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14765:1;14751:16;;14616:158;;;;:::o;14970:162::-;15056:6;15087:1;15082:6;;:1;:6;;;;15090:12;15074:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;15124:1;15120;:5;15113:12;;14970:162;;;;;:::o;12063:827::-;12171:1;12156:17;;:3;:17;;;;12148:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12272:1;12257:17;;:3;:17;;;;12249:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12365:87;12371:8;:13;12380:3;12371:13;;;;;;;;;;;;;;;;;;;;;;;;;12386:6;12365:87;;;;;;;;;;;;;;;;;:5;:87::i;:::-;12349:8;:13;12358:3;12349:13;;;;;;;;;;;;;;;;:103;;;;;;;;;;;;;;;;;;12478:81;12484:8;:13;12493:3;12484:13;;;;;;;;;;;;;;;;;;;;;;;;;12499:6;12478:81;;;;;;;;;;;;;;;;;:5;:81::i;:::-;12462:8;:13;12471:3;12462:13;;;;;;;;;;;;;;;;:97;;;;;;;;;;;;;;;;;;12588:3;12574:26;;12583:3;12574:26;;;12593:6;12574:26;;;;;;:::i;:::-;;;;;;;;12751:1;12725:28;;:9;:14;12735:3;12725:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;12721:163;;;12769:19;12779:3;12784;12769:9;:19::i;:::-;12721:163;;;12819:54;12834:9;:14;12844:3;12834:14;;;;;;;;;;;;;;;;;;;;;;;;;12850:9;:14;12860:3;12850:14;;;;;;;;;;;;;;;;;;;;;;;;;12866:6;12819:14;:54::i;:::-;12721:163;12063:827;;;:::o;11690:367::-;11766:23;11792:9;:20;11802:9;11792:20;;;;;;;;;;;;;;;;;;;;;;;;;11766:46;;11822:23;11848:8;:19;11857:9;11848:19;;;;;;;;;;;;;;;;;;;;;;;;;11822:45;;11900:9;11877;:20;11887:9;11877:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11969:9;11925:54;;11952:15;11925:54;;11941:9;11925:54;;;;;;;;;;;;11990:60;12005:15;12022:9;12033:16;11990:14;:60::i;:::-;11690:367;;;;:::o;15138:149::-;15183:4;15199:15;15246:9;15235:20;;15273:7;15266:14;;;15138:149;:::o;14780:184::-;14866:6;14884:8;14899:1;14895;:5;14884:16;;14923:1;14918:6;;:1;:6;;;;14926:12;14910:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14956:1;14949:8;;;14780:184;;;;;:::o;12896:925::-;13000:6;12990:16;;:6;:16;;;;:30;;;;;13019:1;13010:6;:10;;;12990:30;12986:829;;;13058:1;13040:20;;:6;:20;;;13036:378;;13080:16;13099:14;:22;13114:6;13099:22;;;;;;;;;;;;;;;;;;;;;;;;;13080:41;;13139:16;13170:1;13158:9;:13;;;:60;;13217:1;13158:60;;;13174:11;:19;13186:6;13174:19;;;;;;;;;;;;;;;:34;13206:1;13194:9;:13;13174:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;13158:60;13139:79;;13236:16;13255:69;13261:9;13272:6;13255:69;;;;;;;;;;;;;;;;;:5;:69::i;:::-;13236:88;;13342:57;13359:6;13367:9;13378;13389;13342:16;:57::i;:::-;13036:378;;;;13450:1;13432:20;;:6;:20;;;13428:377;;13472:16;13491:14;:22;13506:6;13491:22;;;;;;;;;;;;;;;;;;;;;;;;;13472:41;;13531:16;13562:1;13550:9;:13;;;:60;;13609:1;13550:60;;;13566:11;:19;13578:6;13566:19;;;;;;;;;;;;;;;:34;13598:1;13586:9;:13;13566:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;13550:60;13531:79;;13628:16;13647:68;13653:9;13664:6;13647:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;13628:87;;13733:57;13750:6;13758:9;13769;13780;13733:16;:57::i;:::-;13428:377;;;;12986:829;12896:925;;;:::o;13827:619::-;13944:18;13965:77;13972:12;13965:77;;;;;;;;;;;;;;;;;:6;:77::i;:::-;13944:98;;14070:1;14055:12;:16;;;:85;;;;;14129:11;14075:65;;:11;:22;14087:9;14075:22;;;;;;;;;;;;;;;:40;14113:1;14098:12;:16;14075:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;14055:85;14051:324;;;14203:8;14154:11;:22;14166:9;14154:22;;;;;;;;;;;;;;;:40;14192:1;14177:12;:16;14154:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;14051:324;;;14277:33;;;;;;;;14288:11;14277:33;;;;;;14301:8;14277:33;;;;;14238:11;:22;14250:9;14238:22;;;;;;;;;;;;;;;:36;14261:12;14238:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14365:1;14350:12;:16;14322:14;:25;14337:9;14322:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14051:324;14409:9;14388:51;;;14420:8;14430;14388:51;;;;;;;:::i;:::-;;;;;;;;13827:619;;;;;:::o;14452:158::-;14527:6;14557:5;14553:1;:9;14564:12;14545:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14601:1;14587:16;;14452:158;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:19:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:139::-;;381:6;368:20;359:29;;397:33;424:5;397:33;:::i;:::-;349:87;;;;:::o;442:137::-;;525:6;512:20;503:29;;541:32;567:5;541:32;:::i;:::-;493:86;;;;:::o;585:135::-;;667:6;654:20;645:29;;683:31;708:5;683:31;:::i;:::-;635:85;;;;:::o;726:137::-;;809:6;796:20;787:29;;825:32;851:5;825:32;:::i;:::-;777:86;;;;:::o;869:260::-;;977:2;965:9;956:7;952:23;948:32;945:2;;;993:1;990;983:12;945:2;1035:1;1059:53;1104:7;1095:6;1084:9;1080:22;1059:53;:::i;:::-;1049:63;;1007:115;935:194;;;;:::o;1135:403::-;;;1260:2;1248:9;1239:7;1235:23;1231:32;1228:2;;;1276:1;1273;1266:12;1228:2;1318:1;1342:53;1387:7;1378:6;1367:9;1363:22;1342:53;:::i;:::-;1332:63;;1290:115;1443:2;1468:53;1513:7;1504:6;1493:9;1489:22;1468:53;:::i;:::-;1458:63;;1415:116;1218:320;;;;;:::o;1544:546::-;;;;1686:2;1674:9;1665:7;1661:23;1657:32;1654:2;;;1702:1;1699;1692:12;1654:2;1744:1;1768:53;1813:7;1804:6;1793:9;1789:22;1768:53;:::i;:::-;1758:63;;1716:115;1869:2;1894:53;1939:7;1930:6;1919:9;1915:22;1894:53;:::i;:::-;1884:63;;1841:116;1995:2;2020:53;2065:7;2056:6;2045:9;2041:22;2020:53;:::i;:::-;2010:63;;1967:116;1644:446;;;;;:::o;2096:403::-;;;2221:2;2209:9;2200:7;2196:23;2192:32;2189:2;;;2237:1;2234;2227:12;2189:2;2279:1;2303:53;2348:7;2339:6;2328:9;2324:22;2303:53;:::i;:::-;2293:63;;2251:115;2404:2;2429:53;2474:7;2465:6;2454:9;2450:22;2429:53;:::i;:::-;2419:63;;2376:116;2179:320;;;;;:::o;2505:974::-;;;;;;;2696:3;2684:9;2675:7;2671:23;2667:33;2664:2;;;2713:1;2710;2703:12;2664:2;2755:1;2779:53;2824:7;2815:6;2804:9;2800:22;2779:53;:::i;:::-;2769:63;;2727:115;2880:2;2905:53;2950:7;2941:6;2930:9;2926:22;2905:53;:::i;:::-;2895:63;;2852:116;3006:2;3031:53;3076:7;3067:6;3056:9;3052:22;3031:53;:::i;:::-;3021:63;;2978:116;3132:2;3157:51;3200:7;3191:6;3180:9;3176:22;3157:51;:::i;:::-;3147:61;;3104:114;3256:3;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3383:3;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3355:117;2654:825;;;;;;;;:::o;3485:401::-;;;3609:2;3597:9;3588:7;3584:23;3580:32;3577:2;;;3625:1;3622;3615:12;3577:2;3667:1;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3639:115;3792:2;3817:52;3861:7;3852:6;3841:9;3837:22;3817:52;:::i;:::-;3807:62;;3764:115;3567:319;;;;;:::o;3892:401::-;;;4016:2;4004:9;3995:7;3991:23;3987:32;3984:2;;;4032:1;4029;4022:12;3984:2;4074:1;4098:53;4143:7;4134:6;4123:9;4119:22;4098:53;:::i;:::-;4088:63;;4046:115;4199:2;4224:52;4268:7;4259:6;4248:9;4244:22;4224:52;:::i;:::-;4214:62;;4171:115;3974:319;;;;;:::o;4299:118::-;4386:24;4404:5;4386:24;:::i;:::-;4381:3;4374:37;4364:53;;:::o;4423:109::-;4504:21;4519:5;4504:21;:::i;:::-;4499:3;4492:34;4482:50;;:::o;4538:118::-;4625:24;4643:5;4625:24;:::i;:::-;4620:3;4613:37;4603:53;;:::o;4662:157::-;4767:45;4787:24;4805:5;4787:24;:::i;:::-;4767:45;:::i;:::-;4762:3;4755:58;4745:74;;:::o;4825:364::-;;4941:39;4974:5;4941:39;:::i;:::-;4996:71;5060:6;5055:3;4996:71;:::i;:::-;4989:78;;5076:52;5121:6;5116:3;5109:4;5102:5;5098:16;5076:52;:::i;:::-;5153:29;5175:6;5153:29;:::i;:::-;5148:3;5144:39;5137:46;;4917:272;;;;;:::o;5195:373::-;;5358:67;5422:2;5417:3;5358:67;:::i;:::-;5351:74;;5455:34;5451:1;5446:3;5442:11;5435:55;5521:11;5516:2;5511:3;5507:12;5500:33;5559:2;5554:3;5550:12;5543:19;;5341:227;;;:::o;5574:380::-;;5737:67;5801:2;5796:3;5737:67;:::i;:::-;5730:74;;5834:34;5830:1;5825:3;5821:11;5814:55;5900:18;5895:2;5890:3;5886:12;5879:40;5945:2;5940:3;5936:12;5929:19;;5720:234;;;:::o;5960:374::-;;6123:67;6187:2;6182:3;6123:67;:::i;:::-;6116:74;;6220:34;6216:1;6211:3;6207:11;6200:55;6286:12;6281:2;6276:3;6272:12;6265:34;6325:2;6320:3;6316:12;6309:19;;6106:228;;;:::o;6340:396::-;;6521:84;6603:1;6598:3;6521:84;:::i;:::-;6514:91;;6635:66;6631:1;6626:3;6622:11;6615:87;6728:1;6723:3;6719:11;6712:18;;6504:232;;;:::o;6742:371::-;;6905:67;6969:2;6964:3;6905:67;:::i;:::-;6898:74;;7002:34;6998:1;6993:3;6989:11;6982:55;7068:9;7063:2;7058:3;7054:12;7047:31;7104:2;7099:3;7095:12;7088:19;;6888:225;;;:::o;7119:391::-;;7282:67;7346:2;7341:3;7282:67;:::i;:::-;7275:74;;7379:34;7375:1;7370:3;7366:11;7359:55;7445:29;7440:2;7435:3;7431:12;7424:51;7501:2;7496:3;7492:12;7485:19;;7265:245;;;:::o;7516:372::-;;7679:67;7743:2;7738:3;7679:67;:::i;:::-;7672:74;;7776:34;7772:1;7767:3;7763:11;7756:55;7842:10;7837:2;7832:3;7828:12;7821:32;7879:2;7874:3;7870:12;7863:19;;7662:226;;;:::o;7894:367::-;;8057:67;8121:2;8116:3;8057:67;:::i;:::-;8050:74;;8154:34;8150:1;8145:3;8141:11;8134:55;8220:5;8215:2;8210:3;8206:12;8199:27;8252:2;8247:3;8243:12;8236:19;;8040:221;;;:::o;8267:393::-;;8430:67;8494:2;8489:3;8430:67;:::i;:::-;8423:74;;8527:34;8523:1;8518:3;8514:11;8507:55;8593:31;8588:2;8583:3;8579:12;8572:53;8651:2;8646:3;8642:12;8635:19;;8413:247;;;:::o;8666:371::-;;8829:67;8893:2;8888:3;8829:67;:::i;:::-;8822:74;;8926:34;8922:1;8917:3;8913:11;8906:55;8992:9;8987:2;8982:3;8978:12;8971:31;9028:2;9023:3;9019:12;9012:19;;8812:225;;;:::o;9043:328::-;;9206:67;9270:2;9265:3;9206:67;:::i;:::-;9199:74;;9303:32;9299:1;9294:3;9290:11;9283:53;9362:2;9357:3;9353:12;9346:19;;9189:182;;;:::o;9377:372::-;;9540:67;9604:2;9599:3;9540:67;:::i;:::-;9533:74;;9637:34;9633:1;9628:3;9624:11;9617:55;9703:10;9698:2;9693:3;9689:12;9682:32;9740:2;9735:3;9731:12;9724:19;;9523:226;;;:::o;9755:118::-;9842:24;9860:5;9842:24;:::i;:::-;9837:3;9830:37;9820:53;;:::o;9879:115::-;9964:23;9981:5;9964:23;:::i;:::-;9959:3;9952:36;9942:52;;:::o;10000:112::-;10083:22;10099:5;10083:22;:::i;:::-;10078:3;10071:35;10061:51;;:::o;10118:129::-;10204:36;10234:5;10204:36;:::i;:::-;10199:3;10192:49;10182:65;;:::o;10253:115::-;10338:23;10355:5;10338:23;:::i;:::-;10333:3;10326:36;10316:52;;:::o;10374:663::-;;10637:148;10781:3;10637:148;:::i;:::-;10630:155;;10795:75;10866:3;10857:6;10795:75;:::i;:::-;10895:2;10890:3;10886:12;10879:19;;10908:75;10979:3;10970:6;10908:75;:::i;:::-;11008:2;11003:3;10999:12;10992:19;;11028:3;11021:10;;10619:418;;;;;:::o;11043:222::-;;11174:2;11163:9;11159:18;11151:26;;11187:71;11255:1;11244:9;11240:17;11231:6;11187:71;:::i;:::-;11141:124;;;;:::o;11271:210::-;;11396:2;11385:9;11381:18;11373:26;;11409:65;11471:1;11460:9;11456:17;11447:6;11409:65;:::i;:::-;11363:118;;;;:::o;11487:222::-;;11618:2;11607:9;11603:18;11595:26;;11631:71;11699:1;11688:9;11684:17;11675:6;11631:71;:::i;:::-;11585:124;;;;:::o;11715:553::-;;11930:3;11919:9;11915:19;11907:27;;11944:71;12012:1;12001:9;11997:17;11988:6;11944:71;:::i;:::-;12025:72;12093:2;12082:9;12078:18;12069:6;12025:72;:::i;:::-;12107;12175:2;12164:9;12160:18;12151:6;12107:72;:::i;:::-;12189;12257:2;12246:9;12242:18;12233:6;12189:72;:::i;:::-;11897:371;;;;;;;:::o;12274:553::-;;12489:3;12478:9;12474:19;12466:27;;12503:71;12571:1;12560:9;12556:17;12547:6;12503:71;:::i;:::-;12584:72;12652:2;12641:9;12637:18;12628:6;12584:72;:::i;:::-;12666;12734:2;12723:9;12719:18;12710:6;12666:72;:::i;:::-;12748;12816:2;12805:9;12801:18;12792:6;12748:72;:::i;:::-;12456:371;;;;;;;:::o;12833:545::-;;13044:3;13033:9;13029:19;13021:27;;13058:71;13126:1;13115:9;13111:17;13102:6;13058:71;:::i;:::-;13139:68;13203:2;13192:9;13188:18;13179:6;13139:68;:::i;:::-;13217:72;13285:2;13274:9;13270:18;13261:6;13217:72;:::i;:::-;13299;13367:2;13356:9;13352:18;13343:6;13299:72;:::i;:::-;13011:367;;;;;;;:::o;13384:313::-;;13535:2;13524:9;13520:18;13512:26;;13584:9;13578:4;13574:20;13570:1;13559:9;13555:17;13548:47;13612:78;13685:4;13676:6;13612:78;:::i;:::-;13604:86;;13502:195;;;;:::o;13703:419::-;;13907:2;13896:9;13892:18;13884:26;;13956:9;13950:4;13946:20;13942:1;13931:9;13927:17;13920:47;13984:131;14110:4;13984:131;:::i;:::-;13976:139;;13874:248;;;:::o;14128:419::-;;14332:2;14321:9;14317:18;14309:26;;14381:9;14375:4;14371:20;14367:1;14356:9;14352:17;14345:47;14409:131;14535:4;14409:131;:::i;:::-;14401:139;;14299:248;;;:::o;14553:419::-;;14757:2;14746:9;14742:18;14734:26;;14806:9;14800:4;14796:20;14792:1;14781:9;14777:17;14770:47;14834:131;14960:4;14834:131;:::i;:::-;14826:139;;14724:248;;;:::o;14978:419::-;;15182:2;15171:9;15167:18;15159:26;;15231:9;15225:4;15221:20;15217:1;15206:9;15202:17;15195:47;15259:131;15385:4;15259:131;:::i;:::-;15251:139;;15149:248;;;:::o;15403:419::-;;15607:2;15596:9;15592:18;15584:26;;15656:9;15650:4;15646:20;15642:1;15631:9;15627:17;15620:47;15684:131;15810:4;15684:131;:::i;:::-;15676:139;;15574:248;;;:::o;15828:419::-;;16032:2;16021:9;16017:18;16009:26;;16081:9;16075:4;16071:20;16067:1;16056:9;16052:17;16045:47;16109:131;16235:4;16109:131;:::i;:::-;16101:139;;15999:248;;;:::o;16253:419::-;;16457:2;16446:9;16442:18;16434:26;;16506:9;16500:4;16496:20;16492:1;16481:9;16477:17;16470:47;16534:131;16660:4;16534:131;:::i;:::-;16526:139;;16424:248;;;:::o;16678:419::-;;16882:2;16871:9;16867:18;16859:26;;16931:9;16925:4;16921:20;16917:1;16906:9;16902:17;16895:47;16959:131;17085:4;16959:131;:::i;:::-;16951:139;;16849:248;;;:::o;17103:419::-;;17307:2;17296:9;17292:18;17284:26;;17356:9;17350:4;17346:20;17342:1;17331:9;17327:17;17320:47;17384:131;17510:4;17384:131;:::i;:::-;17376:139;;17274:248;;;:::o;17528:419::-;;17732:2;17721:9;17717:18;17709:26;;17781:9;17775:4;17771:20;17767:1;17756:9;17752:17;17745:47;17809:131;17935:4;17809:131;:::i;:::-;17801:139;;17699:248;;;:::o;17953:419::-;;18157:2;18146:9;18142:18;18134:26;;18206:9;18200:4;18196:20;18192:1;18181:9;18177:17;18170:47;18234:131;18360:4;18234:131;:::i;:::-;18226:139;;18124:248;;;:::o;18378:222::-;;18509:2;18498:9;18494:18;18486:26;;18522:71;18590:1;18579:9;18575:17;18566:6;18522:71;:::i;:::-;18476:124;;;;:::o;18606:218::-;;18735:2;18724:9;18720:18;18712:26;;18748:69;18814:1;18803:9;18799:17;18790:6;18748:69;:::i;:::-;18702:122;;;;:::o;18830:324::-;;18985:2;18974:9;18970:18;18962:26;;18998:69;19064:1;19053:9;19049:17;19040:6;18998:69;:::i;:::-;19077:70;19143:2;19132:9;19128:18;19119:6;19077:70;:::i;:::-;18952:202;;;;;:::o;19160:214::-;;19287:2;19276:9;19272:18;19264:26;;19300:67;19364:1;19353:9;19349:17;19340:6;19300:67;:::i;:::-;19254:120;;;;:::o;19380:220::-;;19510:2;19499:9;19495:18;19487:26;;19523:70;19590:1;19579:9;19575:17;19566:6;19523:70;:::i;:::-;19477:123;;;;:::o;19606:218::-;;19735:2;19724:9;19720:18;19712:26;;19748:69;19814:1;19803:9;19799:17;19790:6;19748:69;:::i;:::-;19702:122;;;;:::o;19830:328::-;;19987:2;19976:9;19972:18;19964:26;;20000:70;20067:1;20056:9;20052:17;20043:6;20000:70;:::i;:::-;20080:71;20147:2;20136:9;20132:18;20123:6;20080:71;:::i;:::-;19954:204;;;;;:::o;20164:99::-;;20250:5;20244:12;20234:22;;20223:40;;;:::o;20269:169::-;;20387:6;20382:3;20375:19;20427:4;20422:3;20418:14;20403:29;;20365:73;;;;:::o;20444:148::-;;20583:3;20568:18;;20558:34;;;;:::o;20598:96::-;;20664:24;20682:5;20664:24;:::i;:::-;20653:35;;20643:51;;;:::o;20700:90::-;;20777:5;20770:13;20763:21;20752:32;;20742:48;;;:::o;20796:77::-;;20862:5;20851:16;;20841:32;;;:::o;20879:126::-;;20956:42;20949:5;20945:54;20934:65;;20924:81;;;:::o;21011:77::-;;21077:5;21066:16;;21056:32;;;:::o;21094:93::-;;21170:10;21163:5;21159:22;21148:33;;21138:49;;;:::o;21193:86::-;;21268:4;21261:5;21257:16;21246:27;;21236:43;;;:::o;21285:109::-;;21361:26;21354:5;21350:38;21339:49;;21329:65;;;:::o;21400:111::-;;21482:23;21499:5;21482:23;:::i;:::-;21469:36;;21459:52;;;:::o;21517:307::-;21585:1;21595:113;21609:6;21606:1;21603:13;21595:113;;;21694:1;21689:3;21685:11;21679:18;21675:1;21670:3;21666:11;21659:39;21631:2;21628:1;21624:10;21619:15;;21595:113;;;21726:6;21723:1;21720:13;21717:2;;;21806:1;21797:6;21792:3;21788:16;21781:27;21717:2;21566:258;;;;:::o;21830:79::-;;21898:5;21887:16;;21877:32;;;:::o;21915:102::-;;22007:2;22003:7;21998:2;21991:5;21987:14;21983:28;21973:38;;21963:54;;;:::o;22023:122::-;22096:24;22114:5;22096:24;:::i;:::-;22089:5;22086:35;22076:2;;22135:1;22132;22125:12;22076:2;22066:79;:::o;22151:122::-;22224:24;22242:5;22224:24;:::i;:::-;22217:5;22214:35;22204:2;;22263:1;22260;22253:12;22204:2;22194:79;:::o;22279:122::-;22352:24;22370:5;22352:24;:::i;:::-;22345:5;22342:35;22332:2;;22391:1;22388;22381:12;22332:2;22322:79;:::o;22407:120::-;22479:23;22496:5;22479:23;:::i;:::-;22472:5;22469:34;22459:2;;22517:1;22514;22507:12;22459:2;22449:78;:::o;22533:118::-;22604:22;22620:5;22604:22;:::i;:::-;22597:5;22594:33;22584:2;;22641:1;22638;22631:12;22584:2;22574:77;:::o;22657:120::-;22729:23;22746:5;22729:23;:::i;:::-;22722:5;22719:34;22709:2;;22767:1;22764;22757:12;22709:2;22699:78;:::o" + }, + "methodIdentifiers": { + "DELEGATION_TYPEHASH()": "e7a324dc", + "DOMAIN_TYPEHASH()": "20606b70", + "_burn(address,uint96)": "72d3ee9e", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "checkpoints(address,uint32)": "f1127ed8", + "decimals()": "313ce567", + "delegate(address)": "5c19a95c", + "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)": "c3cda520", + "delegates(address)": "587cde1e", + "getCurrentVotes(address)": "b4b5ea57", + "getInitialHolder()": "ae80d9de", + "getPriorVotes(address,uint256)": "782d6fe1", + "getTotalSupply()": "c4e41b22", + "governor()": "0c340a24", + "initialHolder()": "b72218e3", + "name()": "06fdde03", + "nonces(address)": "7ecebe00", + "numCheckpoints(address)": "6fcfff45", + "setGovernor(address)": "c42cf535", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + } + } + }, + "src/main/solidity/net-emissions-token-network/Governance/Governor.sol": { + "Dclm8Interface": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint96", + "name": "amount", + "type": "uint96" + } + ], + "name": "_burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInitialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "_burn(address,uint96)": "72d3ee9e", + "balanceOf(address)": "70a08231", + "getInitialHolder()": "ae80d9de", + "getPriorVotes(address,uint256)": "782d6fe1", + "getTotalSupply()": "c4e41b22" + } + } + }, + "Governor": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "dclm8_", + "type": "address" + }, + { + "internalType": "address", + "name": "guardian_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "__abdicate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "__acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__executeSetTimelockPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__queueSetTimelockPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "name": "castVote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "name": "castVoteBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "dclm8", + "outputs": [ + { + "internalType": "contract Dclm8Interface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getActions", + "outputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getDescription", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "getReceipt", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct Governor.Receipt", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "guardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalMaxOperations", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "queue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "quorumVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "state", + "outputs": [ + { + "internalType": "enum Governor.ProposalState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract TimelockInterface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1111:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "80:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "95:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "89:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "89:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "80:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "138:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "111:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "111:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "111:33:19" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "48:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "56:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64:5:19", + "type": "" + } + ], + "src": "7:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "267:479:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "313:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "322:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "325:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "315:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "315:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "315:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "288:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "297:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "284:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "284:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "309:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "280:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "280:32:19" + }, + "nodeType": "YulIf", + "src": "277:2:19" + }, + { + "nodeType": "YulBlock", + "src": "339:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "353:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "367:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "357:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "381:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "427:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "438:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "423:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "423:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "447:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "391:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "391:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "381:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "475:127:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "489:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "503:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "493:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "518:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "564:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "575:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "560:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "560:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "584:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "528:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "528:64:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "518:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "612:127:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "626:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "640:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "630:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "655:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "701:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "712:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "697:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "697:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "721:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "665:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "665:64:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "655:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "221:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "232:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "244:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "252:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "260:6:19", + "type": "" + } + ], + "src": "156:590:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "797:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "807:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "836:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "818:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "818:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "807:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "779:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "789:7:19", + "type": "" + } + ], + "src": "752:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "899:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "909:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "924:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "931:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "920:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "920:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "909:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "881:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "891:7:19", + "type": "" + } + ], + "src": "854:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1029:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1086:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1095:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1098:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1088:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1088:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1088:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1052:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1077:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1059:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "1059:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1049:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1049:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1042:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1042:43:19" + }, + "nodeType": "YulIf", + "src": "1039:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1022:5:19", + "type": "" + } + ], + "src": "986:122:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620058d3380380620058d3833981810160405281019062000037919062000119565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001bd565b6000815190506200011381620001a3565b92915050565b6000806000606084860312156200012f57600080fd5b60006200013f8682870162000102565b9350506020620001528682870162000102565b9250506040620001658682870162000102565b9150509250925092565b60006200017c8262000183565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001ae816200016f565b8114620001ba57600080fd5b50565b61570680620001cd6000396000f3fe6080604052600436106101b75760003560e01c8063760fbc13116100ec578063da35c6641161008a578063ddf0b00911610064578063ddf0b0091461060a578063deaaa7cc14610633578063e23a9a521461065e578063fe0d94c11461069b576101b7565b8063da35c66414610579578063da95691a146105a4578063dbfa977f146105e1576101b7565b806394a08d58116100c657806394a08d58146104e1578063b58131b01461050c578063b9a6196114610537578063d33219b41461054e576101b7565b8063760fbc13146104765780637bdbe4d01461048d57806391500671146104b8576101b7565b8063328dd9821161015957806340e58ee51161013357806340e58ee5146103bc578063452a9320146103e55780634925ec55146104105780635d2546081461044d576101b7565b8063328dd982146103145780633932abb1146103545780633e4f49e61461037f576101b7565b806317977c611161019557806317977c611461025857806320606b701461029557806321f43e42146102c057806324bc1a64146102e9576101b7565b8063013cf08b146101bc57806302a251a31461020257806306fdde031461022d575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de9190613878565b6106b7565b6040516101f99a99989796959493929190615115565b60405180910390f35b34801561020e57600080fd5b506102176107dd565b604051610224919061504a565b60405180910390f35b34801561023957600080fd5b506102426107e7565b60405161024f9190614d2d565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a9190613668565b610820565b60405161028c919061504a565b60405180910390f35b3480156102a157600080fd5b506102aa610838565b6040516102b79190614c00565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e291906136ba565b61085c565b005b3480156102f557600080fd5b506102fe6109e7565b60405161030b919061504a565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613878565b610c0e565b60405161034b9493929190614b9f565b60405180910390f35b34801561036057600080fd5b50610369610eeb565b604051610376919061504a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613878565b610ef4565b6040516103b39190614d12565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613878565b6110d7565b005b3480156103f157600080fd5b506103fa61146f565b60405161040791906149a3565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613878565b611495565b6040516104449190614d2d565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190613906565b61154d565b005b34801561048257600080fd5b5061048b611738565b005b34801561049957600080fd5b506104a261180c565b6040516104af919061504a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906136ba565b611815565b005b3480156104ed57600080fd5b506104f661199b565b6040516105039190614cdc565b60405180910390f35b34801561051857600080fd5b506105216119c1565b60405161052e919061504a565b60405180910390f35b34801561054357600080fd5b5061054c6119d3565b005b34801561055a57600080fd5b50610563611ae5565b6040516105709190614cf7565b60405180910390f35b34801561058557600080fd5b5061058e611b09565b60405161059b919061504a565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906136f6565b611b0f565b6040516105d8919061504a565b60405180910390f35b3480156105ed57600080fd5b506106086004803603810190610603919061398f565b612070565b005b34801561061657600080fd5b50610631600480360381019061062c9190613878565b612081565b005b34801561063f57600080fd5b506106486123cc565b6040516106559190614c00565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906138ca565b6123f0565b604051610692919061502f565b60405180910390f35b6106b560048036038101906106b09190613878565b6124d2565b005b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900460ff169080600b0160019054906101000a900460ff169080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505090508a565b6000614380905090565b6040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f7200000000000000000000000081525081565b60056020528060005260406000206000915090505481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390614e4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161095c91906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161098b94939291906149e7565b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109e29190613837565b505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae80d9de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190613691565b6040518263ffffffff1660e01b8152600401610ae491906149a3565b60206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3491906138a1565b9050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba157600080fd5b505afa158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd991906138a1565b03905060008114610c0057610bf7610bf282601961271b565b612765565b92505050610c0b565b649341498e01925050505b90565b60608060608060006004600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610cbc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c72575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610d0e57602002820191906000526020600020905b815481526020019060010190808311610cfa575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610df2578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b505050505081526020019060010190610d36565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ed5578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec15780601f10610e9657610100808354040283529160200191610ec1565b820191906000526020600020905b815481529060010190602001808311610ea457829003601f168201915b505050505081526020019060010190610e19565b5050505090509450945094509450509193509193565b60006001905090565b60008160035410158015610f085750600082115b610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90614e6f565b60405180910390fd5b600060046000848152602001908152602001600020905080600b0160009054906101000a900460ff1615610f7f5760029150506110d2565b80600701544311610f945760009150506110d2565b80600801544311610fa95760019150506110d2565b80600a01548160090154111580610fca5750610fc36109e7565b8160090154105b15610fd95760039150506110d2565b600081600201541415610ff05760049150506110d2565b80600b0160019054906101000a900460ff16156110115760079150506110d2565b6110bc816002015460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b791906138a1565b6127aa565b42106110cc5760069150506110d2565b60059150505b919050565b60006110e282610ef4565b90506007808111156110f057fe5b8160078111156110fc57fe5b141561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490614def565b60405180910390fd5b6000600460008481526020019081526020016000209050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129e57506111b36119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112214360016127ff565b6040518363ffffffff1660e01b815260040161123e929190614a46565b60206040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128e91906139de565b6bffffffffffffffffffffffff16105b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490614f8f565b60405180910390fd5b600181600b0160006101000a81548160ff02191690831515021790555060005b81600301805490508110156114325760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591fcdfe83600301838154811061135757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401848154811061139157fe5b90600052602060002001548560050185815481106113ab57fe5b906000526020600020018660060186815481106113c457fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016113f3959493929190614b15565b600060405180830381600087803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b5050505080806001019150506112fd565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051611462919061504a565b60405180910390a1505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060046000838152602001908152602001600020600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b50505050509050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f72000000000000000000000000815250805190602001206115b561284f565b306040516020016115c99493929190614c1b565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee888860405160200161161893929190614c60565b6040516020818303038152906040528051906020012090506000828260405160200161164592919061496c565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516116829493929190614c97565b6020604051602081039080840390855afa1580156116a4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117179061500f565b60405180910390fd5b61172c818b8b8861285c565b50505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90614f0f565b60405180910390fd5b6000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90614d8f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161191591906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161194494939291906149e7565b602060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611996919061380e565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000611b196119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe133611b634360016127ff565b6040518363ffffffff1660e01b8152600401611b809291906149be565b60206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906139de565b6bffffffffffffffffffffffff1611611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590614d4f565b60405180910390fd5b84518651148015611c30575083518651145b8015611c3d575082518651145b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390614d6f565b60405180910390fd5b600086511415611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890614e0f565b60405180910390fd5b611cc961180c565b86511115611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390614dcf565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611e1b576000611d6382610ef4565b905060016007811115611d7257fe5b816007811115611d7e57fe5b1415611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690614e8f565b60405180910390fd5b60006007811115611dcc57fe5b816007811115611dd857fe5b1415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614e2f565b60405180910390fd5b505b6000611e2e43611e29610eeb565b6127aa565b90506000611e4382611e3e6107dd565b6127aa565b9050600360008154809291906001019190505550600060046000600354815260200190815260200160002090506003548160000181905550338160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000816002018190555089816003019080519060200190611ee0929190612ed8565b5088816004019080519060200190611ef9929190612f62565b5087816005019080519060200190611f12929190612faf565b5086816006019080519060200190611f2b92919061300f565b5082816007018190555081816008018190555060008160090181905550600081600a0181905550600081600b0160006101000a81548160ff021916908315150217905550600081600b0160016101000a81548160ff0219169083151502179055508581600c019080519060200190611fa492919061306f565b508060000154600560008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000154338c8c8c8c89898e60405161205499989796959493929190615065565b60405180910390a1806000015494505050505095945050505050565b61207c3384848461285c565b505050565b6004600781111561208e57fe5b61209782610ef4565b60078111156120a257fe5b146120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d990614fef565b60405180910390fd5b600060046000838152602001908152602001600020905060006121a24260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561216557600080fd5b505afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d91906138a1565b6127aa565b905060005b8260030180549050811015612384576123778360030182815481106121c857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401838154811061220257fe5b906000526020600020015485600501848154811061221c57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122ba5780601f1061228f576101008083540402835291602001916122ba565b820191906000526020600020905b81548152906001019060200180831161229d57829003601f168201915b50505050508660060185815481106122ce57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561236c5780601f106123415761010080835404028352916020019161236c565b820191906000526020600020905b81548152906001019060200180831161234f57829003601f168201915b505050505086612ca5565b80806001019150506121a7565b508082600201819055507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516123bf9291906151b8565b60405180910390a1505050565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b6123f86130ef565b60046000848152602001908152602001600020600d0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905092915050565b600560078111156124df57fe5b6124e882610ef4565b60078111156124f357fe5b14612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614ecf565b60405180910390fd5b6000600460008381526020019081526020016000209050600181600b0160016101000a81548160ff02191690831515021790555060005b81600301805490508110156126df5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f8360040183815481106125c457fe5b90600052602060002001548460030184815481106125de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401858154811061261857fe5b906000526020600020015486600501868154811061263257fe5b9060005260206000200187600601878154811061264b57fe5b9060005260206000200188600201546040518763ffffffff1660e01b815260040161267a959493929190614b15565b6000604051808303818588803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906126d19190613837565b50808060010191505061256a565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161270f919061504a565b60405180910390a15050565b600061275d83836040518060400160405280601081526020017f6469766973696f6e206279207a65726f00000000000000000000000000000000815250612e77565b905092915050565b6000806002600184018161277557fe5b0490508291505b818110156127a45780915060028182858161279357fe5b04018161279c57fe5b04905061277c565b50919050565b6000808284019050838110156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90614eef565b60405180910390fd5b8091505092915050565b600082821115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614fcf565b60405180910390fd5b818303905092915050565b6000804690508091505090565b6001600781111561286957fe5b61287284610ef4565b600781111561287d57fe5b146128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614faf565b60405180910390fd5b6000600460008581526020019081526020016000209050600081600d0160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff16151514612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614f6f565b60405180910390fd5b6000836bffffffffffffffffffffffff16116129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990614daf565b60405180910390fd5b60008160000160029054906101000a90046bffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18986600701546040518363ffffffff1660e01b8152600401612a42929190614a46565b60206040518083038186803b158015612a5a57600080fd5b505afa158015612a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9291906139de565b039050806bffffffffffffffffffffffff16846bffffffffffffffffffffffff161115612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb90614eaf565b60405180910390fd5b6000612b0d856bffffffffffffffffffffffff16612765565b90508515612b3e57612b318460090154826bffffffffffffffffffffffff166127aa565b8460090181905550612b63565b612b5a84600a0154826bffffffffffffffffffffffff166127aa565b84600a01819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372d3ee9e89876040518363ffffffff1660e01b8152600401612bc0929190614b76565b600060405180830381600087803b158015612bda57600080fd5b505af1158015612bee573d6000803e3d6000fd5b5050505060018360000160006101000a81548160ff021916908315150217905550858360000160016101000a81548160ff021916908315150217905550808360000160026101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4688888884604051612c939493929190614a6f565b60405180910390a15050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2b065378686868686604051602001612cfa959493929190614ab4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612d2c9190614c00565b60206040518083038186803b158015612d4457600080fd5b505afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906137e5565b15612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db390614f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90186868686866040518663ffffffff1660e01b8152600401612e1d959493929190614ab4565b602060405180830381600087803b158015612e3757600080fd5b505af1158015612e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6f919061380e565b505050505050565b60008083118290612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb59190614d2d565b60405180910390fd5b506000838581612eca57fe5b049050809150509392505050565b828054828255906000526020600020908101928215612f51579160200282015b82811115612f505782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612ef8565b5b509050612f5e9190613122565b5090565b828054828255906000526020600020908101928215612f9e579160200282015b82811115612f9d578251825591602001919060010190612f82565b5b509050612fab9190613122565b5090565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffd578251829080519060200190612fed92919061306f565b5091602001919060010190612fcf565b5b50905061300b919061313f565b5090565b82805482825590600052602060002090810192821561305e579160200282015b8281111561305d57825182908051906020019061304d929190613163565b509160200191906001019061302f565b5b50905061306b91906131e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b057805160ff19168380011785556130de565b828001600101855582156130de579182015b828111156130dd5782518255916020019190600101906130c2565b5b5090506130eb9190613122565b5090565b604051806060016040528060001515815260200160001515815260200160006bffffffffffffffffffffffff1681525090565b5b8082111561313b576000816000905550600101613123565b5090565b5b8082111561315f57600081816131569190613207565b50600101613140565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131a457805160ff19168380011785556131d2565b828001600101855582156131d2579182015b828111156131d15782518255916020019190600101906131b6565b5b5090506131df9190613122565b5090565b5b8082111561320357600081816131fa919061324f565b506001016131e4565b5090565b50805460018160011615610100020316600290046000825580601f1061322d575061324c565b601f01602090049060005260206000209081019061324b9190613122565b5b50565b50805460018160011615610100020316600290046000825580601f106132755750613294565b601f0160209004906000526020600020908101906132939190613122565b5b50565b6000813590506132a681615646565b92915050565b6000815190506132bb81615646565b92915050565b600082601f8301126132d257600080fd5b81356132e56132e082615212565b6151e1565b9150818183526020840193506020810190508385602084028201111561330a57600080fd5b60005b8381101561333a57816133208882613297565b84526020840193506020830192505060018101905061330d565b5050505092915050565b600082601f83011261335557600080fd5b81356133686133638261523e565b6151e1565b9150818183526020840193506020810190508360005b838110156133ae57813586016133948882613503565b84526020840193506020830192505060018101905061337e565b5050505092915050565b600082601f8301126133c957600080fd5b81356133dc6133d78261526a565b6151e1565b9150818183526020840193506020810190508360005b83811015613422578135860161340888826135ab565b8452602084019350602083019250506001810190506133f2565b5050505092915050565b600082601f83011261343d57600080fd5b813561345061344b82615296565b6151e1565b9150818183526020840193506020810190508385602084028201111561347557600080fd5b60005b838110156134a5578161348b88826135ff565b845260208401935060208301925050600181019050613478565b5050505092915050565b6000813590506134be8161565d565b92915050565b6000815190506134d38161565d565b92915050565b6000813590506134e881615674565b92915050565b6000815190506134fd81615674565b92915050565b600082601f83011261351457600080fd5b8135613527613522826152c2565b6151e1565b9150808252602083016020830185838301111561354357600080fd5b61354e8382846155d3565b50505092915050565b600082601f83011261356857600080fd5b815161357b613576826152c2565b6151e1565b9150808252602083016020830185838301111561359757600080fd5b6135a28382846155e2565b50505092915050565b600082601f8301126135bc57600080fd5b81356135cf6135ca826152f2565b6151e1565b915080825260208301602083018583830111156135eb57600080fd5b6135f68382846155d3565b50505092915050565b60008135905061360e8161568b565b92915050565b6000815190506136238161568b565b92915050565b600081359050613638816156a2565b92915050565b60008135905061364d816156b9565b92915050565b600081519050613662816156b9565b92915050565b60006020828403121561367a57600080fd5b600061368884828501613297565b91505092915050565b6000602082840312156136a357600080fd5b60006136b1848285016132ac565b91505092915050565b600080604083850312156136cd57600080fd5b60006136db85828601613297565b92505060206136ec858286016135ff565b9150509250929050565b600080600080600060a0868803121561370e57600080fd5b600086013567ffffffffffffffff81111561372857600080fd5b613734888289016132c1565b955050602086013567ffffffffffffffff81111561375157600080fd5b61375d8882890161342c565b945050604086013567ffffffffffffffff81111561377a57600080fd5b613786888289016133b8565b935050606086013567ffffffffffffffff8111156137a357600080fd5b6137af88828901613344565b925050608086013567ffffffffffffffff8111156137cc57600080fd5b6137d8888289016135ab565b9150509295509295909350565b6000602082840312156137f757600080fd5b6000613805848285016134c4565b91505092915050565b60006020828403121561382057600080fd5b600061382e848285016134ee565b91505092915050565b60006020828403121561384957600080fd5b600082015167ffffffffffffffff81111561386357600080fd5b61386f84828501613557565b91505092915050565b60006020828403121561388a57600080fd5b6000613898848285016135ff565b91505092915050565b6000602082840312156138b357600080fd5b60006138c184828501613614565b91505092915050565b600080604083850312156138dd57600080fd5b60006138eb858286016135ff565b92505060206138fc85828601613297565b9150509250929050565b60008060008060008060c0878903121561391f57600080fd5b600061392d89828a016135ff565b965050602061393e89828a016134af565b955050604061394f89828a01613629565b945050606061396089828a016134d9565b935050608061397189828a016134d9565b92505060a061398289828a0161363e565b9150509295509295509295565b6000806000606084860312156139a457600080fd5b60006139b2868287016135ff565b93505060206139c3868287016134af565b92505060406139d48682870161363e565b9150509250925092565b6000602082840312156139f057600080fd5b60006139fe84828501613653565b91505092915050565b6000613a138383613a6e565b60208301905092915050565b6000613a2b8383613c76565b905092915050565b6000613a3f8383613db3565b905092915050565b6000613a538383614912565b60208301905092915050565b613a688161551f565b82525050565b613a7781615495565b82525050565b613a8681615495565b82525050565b6000613a978261538c565b613aa18185615402565b9350613aac83615322565b8060005b83811015613add578151613ac48882613a07565b9750613acf836153ce565b925050600181019050613ab0565b5085935050505092915050565b6000613af582615397565b613aff8185615413565b935083602082028501613b1185615332565b8060005b85811015613b4d5784840389528151613b2e8582613a1f565b9450613b39836153db565b925060208a01995050600181019050613b15565b50829750879550505050505092915050565b6000613b6a826153a2565b613b748185615424565b935083602082028501613b8685615342565b8060005b85811015613bc25784840389528151613ba38582613a33565b9450613bae836153e8565b925060208a01995050600181019050613b8a565b50829750879550505050505092915050565b6000613bdf826153ad565b613be98185615435565b9350613bf483615352565b8060005b83811015613c25578151613c0c8882613a47565b9750613c17836153f5565b925050600181019050613bf8565b5085935050505092915050565b613c3b816154a7565b82525050565b613c4a816154a7565b82525050565b613c59816154b3565b82525050565b613c70613c6b826154b3565b615615565b82525050565b6000613c81826153b8565b613c8b8185615446565b9350613c9b8185602086016155e2565b613ca481615621565b840191505092915050565b6000613cba826153b8565b613cc48185615457565b9350613cd48185602086016155e2565b613cdd81615621565b840191505092915050565b600081546001811660008114613d055760018114613d2b57613d6f565b607f6002830416613d168187615457565b955060ff198316865260208601935050613d6f565b60028204613d398187615457565b9550613d4485615362565b60005b82811015613d6657815481890152600182019150602081019050613d47565b80880195505050505b505092915050565b613d8081615531565b82525050565b613d8f81615555565b82525050565b613d9e81615579565b82525050565b613dad8161558b565b82525050565b6000613dbe826153c3565b613dc88185615468565b9350613dd88185602086016155e2565b613de181615621565b840191505092915050565b6000613df7826153c3565b613e018185615479565b9350613e118185602086016155e2565b613e1a81615621565b840191505092915050565b600081546001811660008114613e425760018114613e6857613eac565b607f6002830416613e538187615479565b955060ff198316865260208601935050613eac565b60028204613e768187615479565b9550613e8185615377565b60005b82811015613ea357815481890152600182019150602081019050613e84565b80880195505050505b505092915050565b6000613ec1603a83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560008301527f732062656c6f772070726f706f73616c207468726573686f6c640000000000006020830152604082019050919050565b6000613f27603f83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360008301527f74696f6e20696e666f726d6174696f6e206172697479206d69736d61746368006020830152604082019050919050565b6000613f8d604583615479565b91507f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460008301527f696e6741646d696e3a2073656e646572206d75737420626520676f762067756160208301527f726469616e0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614019604483615479565b91507f476f7665726e6f723a3a5f63617374566f74653a206e6f20656c696769626c6560008301527f20766f746573207072696f7220746f2070726f706f73616c207374617274206260208301527f6c6f636b000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006140a5602383615479565b91507f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e79206163746960008301527f6f6e7300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061410b603183615479565b91507f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060008301527f65786563757465642070726f706f73616c0000000000000000000000000000006020830152604082019050919050565b600061417160028361548a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006141b1602783615479565b91507f476f7665726e6f723a3a70726f706f73653a206d7573742070726f766964652060008301527f616374696f6e73000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614217605483615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f6164792070656e64696e672070726f706f73616c0000000000000000000000006040830152606082019050919050565b60006142a3604783615479565b91507f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560008301527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f76206760208301527f7561726469616e000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061432f601883615479565b91507f73657450656e64696e6741646d696e28616464726573732900000000000000006000830152602082019050919050565b600061436f602483615479565b91507f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f736160008301527f6c206964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006143d5605383615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f616479206163746976652070726f706f73616c000000000000000000000000006040830152606082019050919050565b6000614461603283615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657320657863656560008301527f647320656c696769626c6520616d6f756e7400000000000000000000000000006020830152604082019050919050565b60006144c7604083615479565b91507f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e2060008301527f6f6e6c79206265206578656375746564206966206974206973207175657565646020830152604082019050919050565b600061452d601183615479565b91507f6164646974696f6e206f766572666c6f770000000000000000000000000000006000830152602082019050919050565b600061456d603183615479565b91507f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d757360008301527f7420626520676f7620677561726469616e0000000000000000000000000000006020830152604082019050919050565b60006145d3603f83615479565b91507f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360008301527f616c20616374696f6e20616c72656164792071756575656420617420657461006020830152604082019050919050565b6000614639603483615479565b91507f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060008301527f6d75737420626520676f7620677561726469616e0000000000000000000000006020830152604082019050919050565b600061469f602883615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c72656160008301527f647920766f7465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614705602a83615479565b91507f476f7665726e6f723a3a63616e63656c3a2070726f706f7365722061626f766560008301527f207468726573686f6c64000000000000000000000000000000000000000000006020830152604082019050919050565b600061476b602583615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74696e67206973206360008301527f6c6f7365640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006147d1601583615479565b91507f7375627472616374696f6e20756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000614811603f83615479565b91507f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60008301527f6c792062652071756575656420696620697420697320737563636565646564006020830152604082019050919050565b6000614877602a83615479565b91507f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c696460008301527f207369676e6174757265000000000000000000000000000000000000000000006020830152604082019050919050565b6060820160008201516148e66000850182613c32565b5060208201516148f96020850182613c32565b50604082015161490c604085018261494e565b50505050565b61491b816154f0565b82525050565b61492a816154f0565b82525050565b614939816154fa565b82525050565b614948816155c1565b82525050565b61495781615507565b82525050565b61496681615507565b82525050565b600061497782614164565b91506149838285613c5f565b6020820191506149938284613c5f565b6020820191508190509392505050565b60006020820190506149b86000830184613a7d565b92915050565b60006040820190506149d36000830185613a5f565b6149e06020830184614921565b9392505050565b600060a0820190506149fc6000830187613a7d565b614a096020830186613da4565b8181036040830152614a1a81614322565b90508181036060830152614a2e8185613caf565b9050614a3d6080830184614921565b95945050505050565b6000604082019050614a5b6000830185613a7d565b614a686020830184614921565b9392505050565b6000608082019050614a846000830187613a7d565b614a916020830186614921565b614a9e6040830185613c41565b614aab606083018461493f565b95945050505050565b600060a082019050614ac96000830188613a7d565b614ad66020830187614921565b8181036040830152614ae88186613dec565b90508181036060830152614afc8185613caf565b9050614b0b6080830184614921565b9695505050505050565b600060a082019050614b2a6000830188613a7d565b614b376020830187614921565b8181036040830152614b498186613e25565b90508181036060830152614b5d8185613ce8565b9050614b6c6080830184614921565b9695505050505050565b6000604082019050614b8b6000830185613a7d565b614b98602083018461495d565b9392505050565b60006080820190508181036000830152614bb98187613a8c565b90508181036020830152614bcd8186613bd4565b90508181036040830152614be18185613b5f565b90508181036060830152614bf58184613aea565b905095945050505050565b6000602082019050614c156000830184613c50565b92915050565b6000608082019050614c306000830187613c50565b614c3d6020830186613c50565b614c4a6040830185614921565b614c576060830184613a7d565b95945050505050565b6000606082019050614c756000830186613c50565b614c826020830185614921565b614c8f6040830184613c41565b949350505050565b6000608082019050614cac6000830187613c50565b614cb96020830186614930565b614cc66040830185613c50565b614cd36060830184613c50565b95945050505050565b6000602082019050614cf16000830184613d77565b92915050565b6000602082019050614d0c6000830184613d86565b92915050565b6000602082019050614d276000830184613d95565b92915050565b60006020820190508181036000830152614d478184613dec565b905092915050565b60006020820190508181036000830152614d6881613eb4565b9050919050565b60006020820190508181036000830152614d8881613f1a565b9050919050565b60006020820190508181036000830152614da881613f80565b9050919050565b60006020820190508181036000830152614dc88161400c565b9050919050565b60006020820190508181036000830152614de881614098565b9050919050565b60006020820190508181036000830152614e08816140fe565b9050919050565b60006020820190508181036000830152614e28816141a4565b9050919050565b60006020820190508181036000830152614e488161420a565b9050919050565b60006020820190508181036000830152614e6881614296565b9050919050565b60006020820190508181036000830152614e8881614362565b9050919050565b60006020820190508181036000830152614ea8816143c8565b9050919050565b60006020820190508181036000830152614ec881614454565b9050919050565b60006020820190508181036000830152614ee8816144ba565b9050919050565b60006020820190508181036000830152614f0881614520565b9050919050565b60006020820190508181036000830152614f2881614560565b9050919050565b60006020820190508181036000830152614f48816145c6565b9050919050565b60006020820190508181036000830152614f688161462c565b9050919050565b60006020820190508181036000830152614f8881614692565b9050919050565b60006020820190508181036000830152614fa8816146f8565b9050919050565b60006020820190508181036000830152614fc88161475e565b9050919050565b60006020820190508181036000830152614fe8816147c4565b9050919050565b6000602082019050818103600083015261500881614804565b9050919050565b600060208201905081810360008301526150288161486a565b9050919050565b600060608201905061504460008301846148d0565b92915050565b600060208201905061505f6000830184614921565b92915050565b60006101208201905061507b600083018c614921565b615088602083018b613a5f565b818103604083015261509a818a613a8c565b905081810360608301526150ae8189613bd4565b905081810360808301526150c28188613b5f565b905081810360a08301526150d68187613aea565b90506150e560c0830186614921565b6150f260e0830185614921565b8181036101008301526151058184613dec565b90509a9950505050505050505050565b60006101408201905061512b600083018d614921565b615138602083018c613a7d565b615145604083018b614921565b615152606083018a614921565b61515f6080830189614921565b61516c60a0830188614921565b61517960c0830187614921565b61518660e0830186613c41565b615194610100830185613c41565b8181036101208301526151a78184613dec565b90509b9a5050505050505050505050565b60006040820190506151cd6000830185614921565b6151da6020830184614921565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156152085761520761561f565b5b8060405250919050565b600067ffffffffffffffff82111561522d5761522c61561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152595761525861561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152855761528461561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b1576152b061561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dd576152dc61561f565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561530d5761530c61561f565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154a0826154d0565b9050919050565b60008115159050919050565b6000819050919050565b60008190506154cb82615632565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061552a8261559d565b9050919050565b600061553c82615543565b9050919050565b600061554e826154d0565b9050919050565b600061556082615567565b9050919050565b6000615572826154d0565b9050919050565b6000615584826154bd565b9050919050565b6000615596826154f0565b9050919050565b60006155a8826155af565b9050919050565b60006155ba826154d0565b9050919050565b60006155cc82615507565b9050919050565b82818337600083830152505050565b60005b838110156156005780820151818401526020810190506155e5565b8381111561560f576000848401525b50505050565b6000819050919050565bfe5b6000601f19601f8301169050919050565b600881106156435761564261561f565b5b50565b61564f81615495565b811461565a57600080fd5b50565b615666816154a7565b811461567157600080fd5b50565b61567d816154b3565b811461568857600080fd5b50565b615694816154f0565b811461569f57600080fd5b50565b6156ab816154fa565b81146156b657600080fd5b50565b6156c281615507565b81146156cd57600080fd5b5056fea26469706673582212203bcdff51dddb7157bce315d5bf05fbc45ef9be050d0ff53a956113816b2ce1e864736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x58D3 CODESIZE SUB DUP1 PUSH3 0x58D3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x119 JUMP JUMPDEST DUP3 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP PUSH3 0x1BD JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x113 DUP2 PUSH3 0x1A3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x13F DUP7 DUP3 DUP8 ADD PUSH3 0x102 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH3 0x152 DUP7 DUP3 DUP8 ADD PUSH3 0x102 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0x165 DUP7 DUP3 DUP8 ADD PUSH3 0x102 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x17C DUP3 PUSH3 0x183 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1AE DUP2 PUSH3 0x16F JUMP JUMPDEST DUP2 EQ PUSH3 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5706 DUP1 PUSH3 0x1CD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x760FBC13 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x60A JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x69B JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0xDBFA977F EQ PUSH2 0x5E1 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x94A08D58 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x94A08D58 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x54E JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x760FBC13 EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x91500671 EQ PUSH2 0x4B8 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x328DD982 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x40E58EE5 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0x4925EC55 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0x5D254608 EQ PUSH2 0x44D JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x328DD982 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x37F JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x17977C61 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x21F43E42 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x2E9 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x22D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x217 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x224 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27A SWAP2 SWAP1 PUSH2 0x3668 JUMP JUMPDEST PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AA PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B7 SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E2 SWAP2 SWAP1 PUSH2 0x36BA JUMP JUMPDEST PUSH2 0x85C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FE PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30B SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x369 PUSH2 0xEEB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x376 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A1 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x10D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FA PUSH2 0x146F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x1495 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x444 SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48B PUSH2 0x1738 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A2 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AF SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DA SWAP2 SWAP1 PUSH2 0x36BA JUMP JUMPDEST PUSH2 0x1815 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F6 PUSH2 0x199B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x4CDC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x521 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x52E SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54C PUSH2 0x19D3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x1AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x570 SWAP2 SWAP1 PUSH2 0x4CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58E PUSH2 0x1B09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59B SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x36F6 JUMP JUMPDEST PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x608 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x603 SWAP2 SWAP1 PUSH2 0x398F JUMP JUMPDEST PUSH2 0x2070 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x631 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x62C SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x2081 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x648 PUSH2 0x23CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x655 SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x685 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x680 SWAP2 SWAP1 PUSH2 0x38CA JUMP JUMPDEST PUSH2 0x23F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x692 SWAP2 SWAP1 PUSH2 0x502F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B0 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x24D2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD SLOAD SWAP1 DUP1 PUSH1 0x8 ADD SLOAD SWAP1 DUP1 PUSH1 0x9 ADD SLOAD SWAP1 DUP1 PUSH1 0xA ADD SLOAD SWAP1 DUP1 PUSH1 0xB ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0xB ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0xC ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D3 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 0x7B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP11 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4380 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20476F7665726E6F72000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E3 SWAP1 PUSH2 0x4E4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95C SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x98B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49E7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9E2 SWAP2 SWAP1 PUSH2 0x3837 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAE80D9DE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x3691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAE4 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB34 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC4E41B22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD9 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST SUB SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0xC00 JUMPI PUSH2 0xBF7 PUSH2 0xBF2 DUP3 PUSH1 0x19 PUSH2 0x271B JUMP JUMPDEST PUSH2 0x2765 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0xC0B JUMP JUMPDEST PUSH5 0x9341498E01 SWAP3 POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0xCBC JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xC72 JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0xD0E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xCFA JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xDF2 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xDDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDDE 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 0xDC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xD36 JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xED5 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xEC1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE96 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEC1 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 0xEA4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE19 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xF08 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF3E SWAP1 PUSH2 0x4E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0xB ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF7F JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0xF94 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0xFA9 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0xFCA JUMPI POP PUSH2 0xFC3 PUSH2 0x9E7 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 ADD SLOAD EQ ISZERO PUSH2 0xFF0 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0xB ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1011 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0x10BC DUP2 PUSH1 0x2 ADD SLOAD PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC1A287E2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10B7 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST TIMESTAMP LT PUSH2 0x10CC JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E2 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP1 DUP2 GT ISZERO PUSH2 0x10F0 JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10FC JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x113D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1134 SWAP1 PUSH2 0x4DEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x129E JUMPI POP PUSH2 0x11B3 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1221 NUMBER PUSH1 0x1 PUSH2 0x27FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123E SWAP3 SWAP2 SWAP1 PUSH2 0x4A46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x128E SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT JUMPDEST PUSH2 0x12DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D4 SWAP1 PUSH2 0x4F8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x1432 JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP4 PUSH1 0x3 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1357 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1391 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x13AB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x13C4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1421 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x12FD JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0x1462 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0xC ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x1541 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1516 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1541 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 0x1524 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20476F7665726E6F72000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x15B5 PUSH2 0x284F JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15C9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH32 0x8E25870C07E0B0B3884C78DA52790939A455C275406C44AE8B434B692FB916EE DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1618 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1645 SWAP3 SWAP2 SWAP1 PUSH2 0x496C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1682 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C97 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1717 SWAP1 PUSH2 0x500F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x172C DUP2 DUP12 DUP12 DUP9 PUSH2 0x285C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17BF SWAP1 PUSH2 0x4F0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x189C SWAP1 PUSH2 0x4D8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3A66F901 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1915 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1944 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49E7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1996 SWAP2 SWAP1 PUSH2 0x380E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH10 0x152D02C7E14AF6800000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A63 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A5A SWAP1 PUSH2 0x4F4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE18B681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B19 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 CALLER PUSH2 0x1B63 NUMBER PUSH1 0x1 PUSH2 0x27FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B80 SWAP3 SWAP2 SWAP1 PUSH2 0x49BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0x1C1E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C15 SWAP1 PUSH2 0x4D4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x1C30 JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1C3D JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1C7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C73 SWAP1 PUSH2 0x4D6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 MLOAD EQ ISZERO PUSH2 0x1CC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB8 SWAP1 PUSH2 0x4E0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CC9 PUSH2 0x180C JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x4DCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x1E1B JUMPI PUSH1 0x0 PUSH2 0x1D63 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1D72 JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1D7E JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1DBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DB6 SWAP1 PUSH2 0x4E8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1DCC JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E19 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E10 SWAP1 PUSH2 0x4E2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1E2E NUMBER PUSH2 0x1E29 PUSH2 0xEEB JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E43 DUP3 PUSH2 0x1E3E PUSH2 0x7DD JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x3 SLOAD DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP CALLER DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1EE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED8 JUMP JUMPDEST POP DUP9 DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1EF9 SWAP3 SWAP2 SWAP1 PUSH2 0x2F62 JUMP JUMPDEST POP DUP8 DUP2 PUSH1 0x5 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1F12 SWAP3 SWAP2 SWAP1 PUSH2 0x2FAF JUMP JUMPDEST POP DUP7 DUP2 PUSH1 0x6 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1F2B SWAP3 SWAP2 SWAP1 PUSH2 0x300F JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x7 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x8 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x9 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xA ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0xC ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1FA4 SWAP3 SWAP2 SWAP1 PUSH2 0x306F JUMP JUMPDEST POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x5 PUSH1 0x0 DUP4 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD SLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x2054 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5065 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x0 ADD SLOAD SWAP5 POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x207C CALLER DUP5 DUP5 DUP5 PUSH2 0x285C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x208E JUMPI INVALID JUMPDEST PUSH2 0x2097 DUP3 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x20A2 JUMPI INVALID JUMPDEST EQ PUSH2 0x20E2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20D9 SWAP1 PUSH2 0x4FEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH2 0x21A2 TIMESTAMP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A42B8F8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x219D SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x2384 JUMPI PUSH2 0x2377 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x21C8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x4 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2202 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x221C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x22BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x228F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x22BA 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 0x229D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x22CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x236C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2341 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x236C 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 0x234F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x2CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x21A7 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x23BF SWAP3 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH32 0x8E25870C07E0B0B3884C78DA52790939A455C275406C44AE8B434B692FB916EE DUP2 JUMP JUMPDEST PUSH2 0x23F8 PUSH2 0x30EF JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0xD ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x24DF JUMPI INVALID JUMPDEST PUSH2 0x24E8 DUP3 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x24F3 JUMPI INVALID JUMPDEST EQ PUSH2 0x2533 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x252A SWAP1 PUSH2 0x4ECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x26DF JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP4 PUSH1 0x4 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x25C4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x25DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x2618 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2632 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x264B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x267A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26D1 SWAP2 SWAP1 PUSH2 0x3837 JUMP JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x256A JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x270F SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x275D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6469766973696F6E206279207A65726F00000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2E77 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1 DUP5 ADD DUP2 PUSH2 0x2775 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP3 SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27A4 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2793 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x279C JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x277C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27EC SWAP1 PUSH2 0x4EEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2844 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x283B SWAP1 PUSH2 0x4FCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x2869 JUMPI INVALID JUMPDEST PUSH2 0x2872 DUP5 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x287D JUMPI INVALID JUMPDEST EQ PUSH2 0x28BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B4 SWAP1 PUSH2 0x4FAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 ISZERO ISZERO DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x2971 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2968 SWAP1 PUSH2 0x4F6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x4DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 DUP10 DUP7 PUSH1 0x7 ADD SLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A42 SWAP3 SWAP2 SWAP1 PUSH2 0x4A46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A92 SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST SUB SWAP1 POP DUP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x2AF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AEB SWAP1 PUSH2 0x4EAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B0D DUP6 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2765 JUMP JUMPDEST SWAP1 POP DUP6 ISZERO PUSH2 0x2B3E JUMPI PUSH2 0x2B31 DUP5 PUSH1 0x9 ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x27AA JUMP JUMPDEST DUP5 PUSH1 0x9 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x2B63 JUMP JUMPDEST PUSH2 0x2B5A DUP5 PUSH1 0xA ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x27AA JUMP JUMPDEST DUP5 PUSH1 0xA ADD DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x72D3EE9E DUP10 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC0 SWAP3 SWAP2 SWAP1 PUSH2 0x4B76 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 DUP4 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP4 PUSH1 0x0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 DUP9 DUP9 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2C93 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF2B06537 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2CFA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D2C SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D7C SWAP2 SWAP1 PUSH2 0x37E5 JUMP JUMPDEST ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DB3 SWAP1 PUSH2 0x4F2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3A66F901 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E6F SWAP2 SWAP1 PUSH2 0x380E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 GT DUP3 SWAP1 PUSH2 0x2EBE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EB5 SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x2ECA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2F51 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2F50 JUMPI DUP3 MLOAD DUP3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2F5E SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2F9E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2F9D JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2F82 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2FAB SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2FFE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI DUP3 MLOAD DUP3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2FED SWAP3 SWAP2 SWAP1 PUSH2 0x306F JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2FCF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x300B SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x305E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x305D JUMPI DUP3 MLOAD DUP3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x304D SWAP3 SWAP2 SWAP1 PUSH2 0x3163 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x302F JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x306B SWAP2 SWAP1 PUSH2 0x31E3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x30B0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x30DE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x30DE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x30DD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x30C2 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30EB SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x313B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3123 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x315F JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x3156 SWAP2 SWAP1 PUSH2 0x3207 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x3140 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x31A4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x31D2 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x31D2 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x31D1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x31B6 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x31DF SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3203 JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x31FA SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x31E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x322D JUMPI POP PUSH2 0x324C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x324B SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3275 JUMPI POP PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3293 SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x32A6 DUP2 PUSH2 0x5646 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32BB DUP2 PUSH2 0x5646 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x32E5 PUSH2 0x32E0 DUP3 PUSH2 0x5212 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x330A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x333A JUMPI DUP2 PUSH2 0x3320 DUP9 DUP3 PUSH2 0x3297 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x330D JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3368 PUSH2 0x3363 DUP3 PUSH2 0x523E JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33AE JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x3394 DUP9 DUP3 PUSH2 0x3503 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x337E JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x33DC PUSH2 0x33D7 DUP3 PUSH2 0x526A JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3422 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x3408 DUP9 DUP3 PUSH2 0x35AB JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x33F2 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x343D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3450 PUSH2 0x344B DUP3 PUSH2 0x5296 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x3475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34A5 JUMPI DUP2 PUSH2 0x348B DUP9 DUP3 PUSH2 0x35FF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3478 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34BE DUP2 PUSH2 0x565D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x34D3 DUP2 PUSH2 0x565D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34E8 DUP2 PUSH2 0x5674 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x34FD DUP2 PUSH2 0x5674 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3514 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3527 PUSH2 0x3522 DUP3 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x354E DUP4 DUP3 DUP5 PUSH2 0x55D3 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x357B PUSH2 0x3576 DUP3 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35A2 DUP4 DUP3 DUP5 PUSH2 0x55E2 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x35BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x35CF PUSH2 0x35CA DUP3 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x35EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35F6 DUP4 DUP3 DUP5 PUSH2 0x55D3 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x360E DUP2 PUSH2 0x568B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3623 DUP2 PUSH2 0x568B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3638 DUP2 PUSH2 0x56A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x364D DUP2 PUSH2 0x56B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3662 DUP2 PUSH2 0x56B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x367A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3688 DUP5 DUP3 DUP6 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x36B1 DUP5 DUP3 DUP6 ADD PUSH2 0x32AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x36DB DUP6 DUP3 DUP7 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36EC DUP6 DUP3 DUP7 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x370E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3734 DUP9 DUP3 DUP10 ADD PUSH2 0x32C1 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x375D DUP9 DUP3 DUP10 ADD PUSH2 0x342C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x377A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3786 DUP9 DUP3 DUP10 ADD PUSH2 0x33B8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37AF DUP9 DUP3 DUP10 ADD PUSH2 0x3344 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37D8 DUP9 DUP3 DUP10 ADD PUSH2 0x35AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3805 DUP5 DUP3 DUP6 ADD PUSH2 0x34C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x382E DUP5 DUP3 DUP6 ADD PUSH2 0x34EE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x386F DUP5 DUP3 DUP6 ADD PUSH2 0x3557 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3898 DUP5 DUP3 DUP6 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x38C1 DUP5 DUP3 DUP6 ADD PUSH2 0x3614 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x38EB DUP6 DUP3 DUP7 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x38FC DUP6 DUP3 DUP7 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x391F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x392D DUP10 DUP3 DUP11 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x393E DUP10 DUP3 DUP11 ADD PUSH2 0x34AF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x394F DUP10 DUP3 DUP11 ADD PUSH2 0x3629 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x3960 DUP10 DUP3 DUP11 ADD PUSH2 0x34D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x3971 DUP10 DUP3 DUP11 ADD PUSH2 0x34D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x3982 DUP10 DUP3 DUP11 ADD PUSH2 0x363E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x39B2 DUP7 DUP3 DUP8 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x39C3 DUP7 DUP3 DUP8 ADD PUSH2 0x34AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x39D4 DUP7 DUP3 DUP8 ADD PUSH2 0x363E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x39FE DUP5 DUP3 DUP6 ADD PUSH2 0x3653 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A13 DUP4 DUP4 PUSH2 0x3A6E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A2B DUP4 DUP4 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A3F DUP4 DUP4 PUSH2 0x3DB3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A53 DUP4 DUP4 PUSH2 0x4912 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3A68 DUP2 PUSH2 0x551F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A77 DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A86 DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A97 DUP3 PUSH2 0x538C JUMP JUMPDEST PUSH2 0x3AA1 DUP2 DUP6 PUSH2 0x5402 JUMP JUMPDEST SWAP4 POP PUSH2 0x3AAC DUP4 PUSH2 0x5322 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3ADD JUMPI DUP2 MLOAD PUSH2 0x3AC4 DUP9 DUP3 PUSH2 0x3A07 JUMP JUMPDEST SWAP8 POP PUSH2 0x3ACF DUP4 PUSH2 0x53CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3AB0 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF5 DUP3 PUSH2 0x5397 JUMP JUMPDEST PUSH2 0x3AFF DUP2 DUP6 PUSH2 0x5413 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3B11 DUP6 PUSH2 0x5332 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3B4D JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3B2E DUP6 DUP3 PUSH2 0x3A1F JUMP JUMPDEST SWAP5 POP PUSH2 0x3B39 DUP4 PUSH2 0x53DB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3B15 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6A DUP3 PUSH2 0x53A2 JUMP JUMPDEST PUSH2 0x3B74 DUP2 DUP6 PUSH2 0x5424 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3B86 DUP6 PUSH2 0x5342 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3BC2 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3BA3 DUP6 DUP3 PUSH2 0x3A33 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BAE DUP4 PUSH2 0x53E8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3B8A JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BDF DUP3 PUSH2 0x53AD JUMP JUMPDEST PUSH2 0x3BE9 DUP2 DUP6 PUSH2 0x5435 JUMP JUMPDEST SWAP4 POP PUSH2 0x3BF4 DUP4 PUSH2 0x5352 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C25 JUMPI DUP2 MLOAD PUSH2 0x3C0C DUP9 DUP3 PUSH2 0x3A47 JUMP JUMPDEST SWAP8 POP PUSH2 0x3C17 DUP4 PUSH2 0x53F5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3BF8 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C4A DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C59 DUP2 PUSH2 0x54B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x3C6B DUP3 PUSH2 0x54B3 JUMP JUMPDEST PUSH2 0x5615 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C81 DUP3 PUSH2 0x53B8 JUMP JUMPDEST PUSH2 0x3C8B DUP2 DUP6 PUSH2 0x5446 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C9B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3CA4 DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CBA DUP3 PUSH2 0x53B8 JUMP JUMPDEST PUSH2 0x3CC4 DUP2 DUP6 PUSH2 0x5457 JUMP JUMPDEST SWAP4 POP PUSH2 0x3CD4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3CDD DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3D05 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3D2B JUMPI PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3D16 DUP2 DUP8 PUSH2 0x5457 JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3D39 DUP2 DUP8 PUSH2 0x5457 JUMP JUMPDEST SWAP6 POP PUSH2 0x3D44 DUP6 PUSH2 0x5362 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3D66 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3D47 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3D80 DUP2 PUSH2 0x5531 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3D8F DUP2 PUSH2 0x5555 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3D9E DUP2 PUSH2 0x5579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3DAD DUP2 PUSH2 0x558B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DBE DUP3 PUSH2 0x53C3 JUMP JUMPDEST PUSH2 0x3DC8 DUP2 DUP6 PUSH2 0x5468 JUMP JUMPDEST SWAP4 POP PUSH2 0x3DD8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3DE1 DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DF7 DUP3 PUSH2 0x53C3 JUMP JUMPDEST PUSH2 0x3E01 DUP2 DUP6 PUSH2 0x5479 JUMP JUMPDEST SWAP4 POP PUSH2 0x3E11 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3E1A DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E68 JUMPI PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3E53 DUP2 DUP8 PUSH2 0x5479 JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3E76 DUP2 DUP8 PUSH2 0x5479 JUMP JUMPDEST SWAP6 POP PUSH2 0x3E81 DUP6 PUSH2 0x5377 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3EA3 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3E84 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EC1 PUSH1 0x3A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A2070726F706F73657220766F7465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x732062656C6F772070726F706F73616C207468726573686F6C64000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F27 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A2070726F706F73616C2066756E63 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x74696F6E20696E666F726D6174696F6E206172697479206D69736D6174636800 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8D PUSH1 0x45 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F717565756553657454696D656C6F636B50656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x696E6741646D696E3A2073656E646572206D75737420626520676F7620677561 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x726469616E000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4019 PUSH1 0x44 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A206E6F20656C696769626C65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20766F746573207072696F7220746F2070726F706F73616C2073746172742062 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x6C6F636B00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A5 PUSH1 0x23 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A20746F6F206D616E792061637469 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410B PUSH1 0x31 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63616E63656C3A2063616E6E6F742063616E63656C20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65786563757465642070726F706F73616C000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4171 PUSH1 0x2 DUP4 PUSH2 0x548A JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41B1 PUSH1 0x27 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206D7573742070726F7669646520 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616374696F6E7300000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4217 PUSH1 0x54 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206F6E65206C6976652070726F70 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F73616C207065722070726F706F7365722C20666F756E6420616E20616C7265 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x6164792070656E64696E672070726F706F73616C000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42A3 PUSH1 0x47 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F6578656375746553657454696D656C6F636B5065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E64696E6741646D696E3A2073656E646572206D75737420626520676F762067 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7561726469616E00000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432F PUSH1 0x18 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x73657450656E64696E6741646D696E2861646472657373290000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x436F PUSH1 0x24 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A73746174653A20696E76616C69642070726F706F7361 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C20696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43D5 PUSH1 0x53 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206F6E65206C6976652070726F70 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F73616C207065722070726F706F7365722C20666F756E6420616E20616C7265 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x616479206163746976652070726F706F73616C00000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4461 PUSH1 0x32 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F746573206578636565 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647320656C696769626C6520616D6F756E740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44C7 PUSH1 0x40 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A657865637574653A2070726F706F73616C2063616E20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E6C7920626520657865637574656420696620697420697320717565756564 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x452D PUSH1 0x11 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x6164646974696F6E206F766572666C6F77000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x456D PUSH1 0x31 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F61626469636174653A2073656E646572206D7573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7420626520676F7620677561726469616E000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45D3 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F71756575654F725265766572743A2070726F706F73 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C20616374696F6E20616C7265616479207175657565642061742065746100 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4639 PUSH1 0x34 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F61636365707441646D696E3A2073656E64657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D75737420626520676F7620677561726469616E000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x469F PUSH1 0x28 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F74657220616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920766F746564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4705 PUSH1 0x2A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63616E63656C3A2070726F706F7365722061626F7665 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x207468726573686F6C6400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x476B PUSH1 0x25 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F74696E672069732063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C6F736564000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47D1 PUSH1 0x15 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x7375627472616374696F6E20756E646572666C6F770000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4811 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A71756575653A2070726F706F73616C2063616E206F6E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C79206265207175657565642069662069742069732073756363656564656400 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4877 PUSH1 0x2A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63617374566F746542795369673A20696E76616C6964 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x207369676E617475726500000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x48E6 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3C32 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x48F9 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3C32 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x490C PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x494E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x491B DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x492A DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4939 DUP2 PUSH2 0x54FA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4948 DUP2 PUSH2 0x55C1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4957 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4966 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4977 DUP3 PUSH2 0x4164 JUMP JUMPDEST SWAP2 POP PUSH2 0x4983 DUP3 DUP6 PUSH2 0x3C5F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4993 DUP3 DUP5 PUSH2 0x3C5F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x49B8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3A7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x49D3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A5F JUMP JUMPDEST PUSH2 0x49E0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x49FC PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A09 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3DA4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4A1A DUP2 PUSH2 0x4322 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4A2E DUP2 DUP6 PUSH2 0x3CAF JUMP JUMPDEST SWAP1 POP PUSH2 0x4A3D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A5B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A68 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4A84 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A91 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4A9E PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x4AAB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x493F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x4AC9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4AD6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4AE8 DUP2 DUP7 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4AFC DUP2 DUP6 PUSH2 0x3CAF JUMP JUMPDEST SWAP1 POP PUSH2 0x4B0B PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x4B2A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4B37 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4B49 DUP2 DUP7 PUSH2 0x3E25 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4B5D DUP2 DUP6 PUSH2 0x3CE8 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B6C PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4B8B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4B98 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x495D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4BB9 DUP2 DUP8 PUSH2 0x3A8C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4BCD DUP2 DUP7 PUSH2 0x3BD4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4BE1 DUP2 DUP6 PUSH2 0x3B5F JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4BF5 DUP2 DUP5 PUSH2 0x3AEA JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4C15 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3C50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4C30 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4C57 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3A7D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4C75 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C82 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4C8F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C41 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4CAC PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4CB9 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x4CC6 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4CD3 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3C50 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4CF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D77 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D0C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D86 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D95 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D47 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D68 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D88 DUP2 PUSH2 0x3F1A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DA8 DUP2 PUSH2 0x3F80 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DC8 DUP2 PUSH2 0x400C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DE8 DUP2 PUSH2 0x4098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E08 DUP2 PUSH2 0x40FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E28 DUP2 PUSH2 0x41A4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E48 DUP2 PUSH2 0x420A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E68 DUP2 PUSH2 0x4296 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E88 DUP2 PUSH2 0x4362 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EA8 DUP2 PUSH2 0x43C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EC8 DUP2 PUSH2 0x4454 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EE8 DUP2 PUSH2 0x44BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F08 DUP2 PUSH2 0x4520 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F28 DUP2 PUSH2 0x4560 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F48 DUP2 PUSH2 0x45C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F68 DUP2 PUSH2 0x462C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F88 DUP2 PUSH2 0x4692 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FA8 DUP2 PUSH2 0x46F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FC8 DUP2 PUSH2 0x475E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FE8 DUP2 PUSH2 0x47C4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5008 DUP2 PUSH2 0x4804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5028 DUP2 PUSH2 0x486A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x5044 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x505F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x507B PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5088 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x3A5F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x509A DUP2 DUP11 PUSH2 0x3A8C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x50AE DUP2 DUP10 PUSH2 0x3BD4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x50C2 DUP2 DUP9 PUSH2 0x3B5F JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x50D6 DUP2 DUP8 PUSH2 0x3AEA JUMP JUMPDEST SWAP1 POP PUSH2 0x50E5 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x50F2 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x5105 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 ADD SWAP1 POP PUSH2 0x512B PUSH1 0x0 DUP4 ADD DUP14 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5138 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x5145 PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5152 PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x515F PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x516C PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5179 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5186 PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x5194 PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x3C41 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x51A7 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x51CD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x51DA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5208 JUMPI PUSH2 0x5207 PUSH2 0x561F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x522D JUMPI PUSH2 0x522C PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5259 JUMPI PUSH2 0x5258 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5285 JUMPI PUSH2 0x5284 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x52B1 JUMPI PUSH2 0x52B0 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x52DD JUMPI PUSH2 0x52DC PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x530D JUMPI PUSH2 0x530C PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A0 DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x54CB DUP3 PUSH2 0x5632 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x552A DUP3 PUSH2 0x559D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x553C DUP3 PUSH2 0x5543 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554E DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5560 DUP3 PUSH2 0x5567 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5572 DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5584 DUP3 PUSH2 0x54BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5596 DUP3 PUSH2 0x54F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55A8 DUP3 PUSH2 0x55AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55BA DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55CC DUP3 PUSH2 0x5507 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5600 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x55E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x560F JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x5643 JUMPI PUSH2 0x5642 PUSH2 0x561F JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x564F DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP2 EQ PUSH2 0x565A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5666 DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x5671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x567D DUP2 PUSH2 0x54B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x5688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5694 DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP2 EQ PUSH2 0x569F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x56AB DUP2 PUSH2 0x54FA JUMP JUMPDEST DUP2 EQ PUSH2 0x56B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x56C2 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP2 EQ PUSH2 0x56CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE 0xCD SELFDESTRUCT MLOAD 0xDD 0xDB PUSH18 0x57BCE315D5BF05FBC45EF9BE050D0FF53A95 PUSH2 0x1381 PUSH12 0x2CE1E864736F6C6343000703 STOP CALLER ", + "sourceMap": "1764:15378:15:-:0;;;7042:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7154:9;7125:8;;:39;;;;;;;;;;;;;;;;;;7197:6;7174:5;;:30;;;;;;;;;;;;;;;;;;7225:9;7214:8;;:20;;;;;;;;;;;;;;;;;;7042:199;;;1764:15378;;7:143:19;;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;70:80;;;;:::o;156:590::-;;;;309:2;297:9;288:7;284:23;280:32;277:2;;;325:1;322;315:12;277:2;367:1;391:64;447:7;438:6;427:9;423:22;391:64;:::i;:::-;381:74;;339:126;503:2;528:64;584:7;575:6;564:9;560:22;528:64;:::i;:::-;518:74;;475:127;640:2;665:64;721:7;712:6;701:9;697:22;665:64;:::i;:::-;655:74;;612:127;267:479;;;;;:::o;752:96::-;;818:24;836:5;818:24;:::i;:::-;807:35;;797:51;;;:::o;854:126::-;;931:42;924:5;920:54;909:65;;899:81;;;:::o;986:122::-;1059:24;1077:5;1059:24;:::i;:::-;1052:5;1049:35;1039:2;;1098:1;1095;1088:12;1039:2;1029:79;:::o;1764:15378:15:-;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:65859:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:19", + "type": "" + } + ], + "src": "7:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "215:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "225:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "240:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "234:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "234:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "225:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "283:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "256:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "256:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "256:33:19" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "193:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "201:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "209:5:19", + "type": "" + } + ], + "src": "152:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "395:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "444:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "453:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "456:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "446:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "446:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "446:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "423:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "431:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "419:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "419:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "438:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "415:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "415:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "408:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "408:35:19" + }, + "nodeType": "YulIf", + "src": "405:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "469:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "496:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "483:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "483:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "473:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "512:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "593:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "536:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "536:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "521:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "521:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "512:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "610:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "621:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "614:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "642:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "649:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "635:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "635:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "635:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "657:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "671:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "679:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "667:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "667:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "657:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "685:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "696:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "701:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "692:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "692:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "685:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "746:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "757:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "750:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "812:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "821:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "824:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "814:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "814:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "814:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "782:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "791:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "799:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "787:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "787:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "778:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "778:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "807:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "775:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "775:36:19" + }, + "nodeType": "YulIf", + "src": "772:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "897:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "911:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "929:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "915:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "952:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "978:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "990:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "957:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "957:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "945:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "945:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "945:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "1008:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1019:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1024:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1015:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1015:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1008:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1042:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1053:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1058:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1049:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1049:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1042:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "859:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "862:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "856:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "856:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "870:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "872:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "881:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "884:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "877:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "877:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "872:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "841:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "843:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "852:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "847:1:19", + "type": "" + } + ] + } + ] + }, + "src": "837:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "373:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "381:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "389:5:19", + "type": "" + } + ], + "src": "318:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1186:665:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1235:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1247:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1237:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1237:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1237:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1214:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1222:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1210:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1210:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1229:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1206:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1206:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1199:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1199:35:19" + }, + "nodeType": "YulIf", + "src": "1196:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1260:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1287:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1274:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1274:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1264:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1303:98:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1393:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1327:65:19" + }, + "nodeType": "YulFunctionCall", + "src": "1327:73:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "1312:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "1312:89:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1303:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1410:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1421:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1414:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1442:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1449:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1435:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1435:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1435:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "1457:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1471:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1479:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1467:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1467:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1457:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1485:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1496:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1501:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1492:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1492:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1485:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1546:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1557:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1550:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1633:212:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1647:48:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1669:6:19" + }, + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1690:3:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1677:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1677:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1665:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1665:30:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "1651:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1715:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "1750:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1762:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1720:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "1720:46:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1708:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1708:59:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1708:59:19" + }, + { + "nodeType": "YulAssignment", + "src": "1780:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1791:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1796:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1787:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1787:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1780:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1814:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1825:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1830:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1821:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1821:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1814:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1595:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1598:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1592:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1592:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1606:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1608:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1617:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1620:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1613:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1613:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1608:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1577:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1579:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1588:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1583:1:19", + "type": "" + } + ] + } + ] + }, + "src": "1573:272:19" + } + ] + }, + "name": "abi_decode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1164:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1172:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1180:5:19", + "type": "" + } + ], + "src": "1100:751:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1960:667:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2009:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2018:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2021:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2011:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2011:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2011:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1988:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1996:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1984:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1984:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2003:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1980:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1980:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1973:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:19" + }, + "nodeType": "YulIf", + "src": "1970:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2034:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2061:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2048:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2048:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2038:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2077:99:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2168:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2101:66:19" + }, + "nodeType": "YulFunctionCall", + "src": "2101:74:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2086:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2086:90:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2077:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2185:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2196:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2189:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2217:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2224:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2210:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2210:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2210:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "2232:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2246:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2254:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2242:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2242:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2232:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2260:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2271:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2276:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2267:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2267:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2260:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2321:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2332:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2325:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2408:213:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2422:48:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2444:6:19" + }, + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2465:3:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2452:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2452:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2440:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2440:30:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "2426:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2490:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "2526:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2538:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2495:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "2495:47:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2483:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2483:60:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2483:60:19" + }, + { + "nodeType": "YulAssignment", + "src": "2556:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2567:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2572:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2563:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2563:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2556:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2590:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2601:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2606:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2597:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2597:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2590:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2370:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2373:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2367:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "2367:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2381:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2383:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2392:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2395:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2388:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2388:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2383:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2352:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2354:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2363:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2358:1:19", + "type": "" + } + ] + } + ] + }, + "src": "2348:273:19" + } + ] + }, + "name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1938:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1946:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1954:5:19", + "type": "" + } + ], + "src": "1873:754:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2727:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2776:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2785:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2778:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2778:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2778:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2755:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2763:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2751:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2751:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2770:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2747:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2747:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2740:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2740:35:19" + }, + "nodeType": "YulIf", + "src": "2737:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2801:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2828:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2815:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2815:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2805:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2844:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2925:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2868:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "2868:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2853:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2853:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2844:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2942:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2953:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2946:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2974:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2981:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2967:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2967:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2967:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "2989:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3003:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3011:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2999:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2999:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2989:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3017:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3028:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3033:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3024:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3017:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3078:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3089:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3082:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3144:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3153:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3156:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3146:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3146:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3146:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3114:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3123:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3131:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3119:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3119:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3110:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3110:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3139:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3107:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "3107:36:19" + }, + "nodeType": "YulIf", + "src": "3104:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3229:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3243:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3261:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "3247:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3284:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "3310:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3322:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3289:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3289:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3277:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3277:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3277:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "3340:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3351:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3356:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3347:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3347:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3340:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3374:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3385:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3390:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3381:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3374:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3191:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3194:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3188:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "3188:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "3202:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3204:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3213:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3216:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3209:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3209:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3204:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "3173:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3175:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "3179:1:19", + "type": "" + } + ] + } + ] + }, + "src": "3169:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2705:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2713:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2721:5:19", + "type": "" + } + ], + "src": "2650:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3466:84:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3476:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3498:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3485:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3485:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3476:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3538:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "3514:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "3514:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3514:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3444:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3452:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3460:5:19", + "type": "" + } + ], + "src": "3417:133:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3616:77:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3626:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3641:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3635:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "3635:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3626:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3681:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "3657:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "3657:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3657:30:19" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3594:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3602:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3610:5:19", + "type": "" + } + ], + "src": "3556:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3751:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3761:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3783:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3770:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3770:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3761:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3826:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "3799:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3799:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3799:33:19" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3729:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3737:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3745:5:19", + "type": "" + } + ], + "src": "3699:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3907:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3917:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3932:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3926:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "3926:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3917:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3975:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "3948:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3948:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3948:33:19" + } + ] + }, + "name": "abi_decode_t_bytes32_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3885:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3893:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3901:5:19", + "type": "" + } + ], + "src": "3844:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4054:403:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4103:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4112:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4115:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4105:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4105:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4105:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4082:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4090:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4078:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4078:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4097:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4074:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4074:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4067:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4067:35:19" + }, + "nodeType": "YulIf", + "src": "4064:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4128:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4155:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4142:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "4142:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4132:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4171:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4236:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4195:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "4195:48:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "4180:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "4180:64:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4171:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4260:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4267:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4253:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4253:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4253:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4283:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4298:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4306:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4294:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4294:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4287:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4320:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4335:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4342:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4331:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4331:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4324:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4385:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4394:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4397:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4387:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4387:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4387:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4366:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4371:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4362:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4362:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4380:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4359:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "4359:25:19" + }, + "nodeType": "YulIf", + "src": "4356:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4434:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4439:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4444:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "4410:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "4410:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4410:41:19" + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4032:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4040:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "4048:5:19", + "type": "" + } + ], + "src": "3993:464:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4535:394:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4584:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4593:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4596:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4586:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4563:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4571:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4559:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4559:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4578:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4555:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4555:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4548:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4548:35:19" + }, + "nodeType": "YulIf", + "src": "4545:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4609:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4629:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4623:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "4623:13:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4613:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4645:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4710:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4669:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "4669:48:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "4654:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "4654:64:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4645:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4734:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4727:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4727:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4727:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4757:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4772:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4780:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4768:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4768:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4761:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4794:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "4809:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4816:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4805:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4805:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4798:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4859:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4868:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4871:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4861:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4861:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4861:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4840:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4845:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4836:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4836:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4854:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4833:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "4833:25:19" + }, + "nodeType": "YulIf", + "src": "4830:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4906:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4911:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4916:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "4884:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "4884:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4884:39:19" + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4513:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4521:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "4529:5:19", + "type": "" + } + ], + "src": "4463:466:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4997:404:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5046:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5055:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5058:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5048:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5048:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5048:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5025:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5033:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5021:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5021:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5040:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5017:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5017:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5010:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5010:35:19" + }, + "nodeType": "YulIf", + "src": "5007:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5071:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5098:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5085:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5085:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5075:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5114:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5180:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5138:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "5138:49:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "5123:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "5123:65:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "5114:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "5204:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5211:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5197:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5197:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5197:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5227:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5242:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5250:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5238:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5238:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "5231:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5264:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "5279:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5286:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5275:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5275:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "5268:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5329:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5338:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5341:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5331:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5331:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5331:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5310:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5315:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5306:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5306:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5324:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5303:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5303:25:19" + }, + "nodeType": "YulIf", + "src": "5300:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5378:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "5383:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5388:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "5354:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "5354:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5354:41:19" + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4975:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4983:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "4991:5:19", + "type": "" + } + ], + "src": "4935:466:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5459:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5469:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5491:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5478:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5478:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5469:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5534:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "5507:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "5507:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5507:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5437:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5445:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5453:5:19", + "type": "" + } + ], + "src": "5407:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5615:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5625:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5640:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5634:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "5634:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5625:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5683:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "5656:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "5656:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5656:33:19" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5593:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5601:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5609:5:19", + "type": "" + } + ], + "src": "5552:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5751:85:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5761:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5783:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5770:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5770:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5761:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5824:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "5799:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "5799:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5799:31:19" + } + ] + }, + "name": "abi_decode_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5729:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5737:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5745:5:19", + "type": "" + } + ], + "src": "5701:135:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5893:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5903:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5925:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5912:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5912:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5903:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5967:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint96", + "nodeType": "YulIdentifier", + "src": "5941:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "5941:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5941:32:19" + } + ] + }, + "name": "abi_decode_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5871:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5879:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5887:5:19", + "type": "" + } + ], + "src": "5842:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6047:79:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6057:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6072:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6066:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "6066:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6057:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6114:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint96", + "nodeType": "YulIdentifier", + "src": "6088:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "6088:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6088:32:19" + } + ] + }, + "name": "abi_decode_t_uint96_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6025:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6033:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6041:5:19", + "type": "" + } + ], + "src": "5985:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6198:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6244:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6253:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6256:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6246:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6246:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6246:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6219:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6228:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6215:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6215:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6240:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6211:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6211:32:19" + }, + "nodeType": "YulIf", + "src": "6208:2:19" + }, + { + "nodeType": "YulBlock", + "src": "6270:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6284:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6298:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6288:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6312:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6347:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6358:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6343:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6343:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6367:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6322:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6322:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6312:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6168:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6179:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6191:6:19", + "type": "" + } + ], + "src": "6132:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6475:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6521:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6530:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6533:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6523:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6523:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6523:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6496:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6505:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6492:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6492:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6517:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6488:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6488:32:19" + }, + "nodeType": "YulIf", + "src": "6485:2:19" + }, + { + "nodeType": "YulBlock", + "src": "6547:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6561:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6575:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6565:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6589:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6635:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6646:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6631:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6631:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6655:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "6599:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "6599:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6589:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6445:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6456:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6468:6:19", + "type": "" + } + ], + "src": "6398:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6769:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6815:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6824:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6827:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6817:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6817:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6817:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6790:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6799:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6786:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6786:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6811:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6782:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6782:32:19" + }, + "nodeType": "YulIf", + "src": "6779:2:19" + }, + { + "nodeType": "YulBlock", + "src": "6841:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6855:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6869:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6859:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6883:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6918:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6929:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6914:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6914:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6938:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6893:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6893:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6883:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6966:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6980:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6994:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6984:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7009:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7044:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7055:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7040:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7040:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7064:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7019:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7019:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7009:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6731:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6742:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6754:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6762:6:19", + "type": "" + } + ], + "src": "6686:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7358:1294:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7405:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7414:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7417:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7407:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7407:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7407:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7379:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7388:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7375:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7375:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7400:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7371:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7371:33:19" + }, + "nodeType": "YulIf", + "src": "7368:2:19" + }, + { + "nodeType": "YulBlock", + "src": "7431:233:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7445:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7476:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7487:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7472:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7472:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7459:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7459:31:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7449:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7537:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7546:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7549:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7539:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7539:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7539:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7509:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7517:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7506:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "7506:30:19" + }, + "nodeType": "YulIf", + "src": "7503:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "7566:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7626:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7637:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7622:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7622:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7646:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7576:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "7576:78:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7566:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7674:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7688:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7719:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7730:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7715:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7715:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7702:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7702:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7692:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7781:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7790:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7793:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7783:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7783:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7783:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7753:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7761:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7750:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "7750:30:19" + }, + "nodeType": "YulIf", + "src": "7747:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "7810:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7870:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7881:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7866:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7866:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7890:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7820:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "7820:78:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7810:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7918:244:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7932:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7963:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7974:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7959:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7959:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7946:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7946:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7936:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8025:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8034:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8037:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8027:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8027:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8027:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7997:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8005:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7994:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "7994:30:19" + }, + "nodeType": "YulIf", + "src": "7991:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8054:98:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8124:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8135:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8120:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8120:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8144:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8064:55:19" + }, + "nodeType": "YulFunctionCall", + "src": "8064:88:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "8054:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8172:243:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8186:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8217:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8228:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8213:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8213:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8200:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "8200:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8190:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8279:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8288:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8291:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8281:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8281:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8281:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8251:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8259:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8248:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8248:30:19" + }, + "nodeType": "YulIf", + "src": "8245:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8308:97:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8377:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8388:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8373:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8373:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8397:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8318:54:19" + }, + "nodeType": "YulFunctionCall", + "src": "8318:87:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "8308:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8425:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8439:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8470:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8481:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8466:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8466:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8453:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "8453:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8443:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8533:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8542:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8545:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8535:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8535:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8535:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8505:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8513:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8502:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8502:30:19" + }, + "nodeType": "YulIf", + "src": "8499:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8562:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8607:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8618:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8603:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8603:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8627:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8572:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "8572:63:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "8562:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7296:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7307:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7319:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7327:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7335:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "7343:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "7351:6:19", + "type": "" + } + ], + "src": "7095:1557:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8732:202:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8778:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8787:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8790:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8780:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8780:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8780:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8753:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8762:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8749:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8749:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8774:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8745:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8745:32:19" + }, + "nodeType": "YulIf", + "src": "8742:2:19" + }, + { + "nodeType": "YulBlock", + "src": "8804:123:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8818:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8832:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8822:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8846:71:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8889:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8900:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8885:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8885:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8909:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "8856:28:19" + }, + "nodeType": "YulFunctionCall", + "src": "8856:61:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8846:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8702:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8713:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8725:6:19", + "type": "" + } + ], + "src": "8658:276:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9017:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9063:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9072:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9075:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9065:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9065:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9065:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9038:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9047:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9034:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9034:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9059:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9030:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9030:32:19" + }, + "nodeType": "YulIf", + "src": "9027:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9089:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9103:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9117:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9107:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9131:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9177:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9188:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9173:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9173:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9197:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32_fromMemory", + "nodeType": "YulIdentifier", + "src": "9141:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "9141:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9131:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8987:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8998:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9010:6:19", + "type": "" + } + ], + "src": "8940:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9314:300:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9360:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9369:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9372:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9362:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9362:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9362:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9335:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9344:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9331:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9331:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9356:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9327:32:19" + }, + "nodeType": "YulIf", + "src": "9324:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9386:221:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9400:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9424:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9435:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9420:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9420:17:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9414:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "9414:24:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9404:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9485:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9494:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9497:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9487:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9487:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9487:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9457:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9465:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9454:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "9454:30:19" + }, + "nodeType": "YulIf", + "src": "9451:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "9514:83:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9569:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9580:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9565:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9565:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9589:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "9524:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "9524:73:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9514:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9284:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9295:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9307:6:19", + "type": "" + } + ], + "src": "9228:386:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9686:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9732:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9741:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9744:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9734:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9734:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9734:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9707:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9716:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9703:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9703:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9728:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9699:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9699:32:19" + }, + "nodeType": "YulIf", + "src": "9696:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9758:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9772:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9786:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9776:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9800:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9835:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9846:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9831:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9831:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9855:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9810:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9810:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9800:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9656:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9667:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9679:6:19", + "type": "" + } + ], + "src": "9620:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9963:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10009:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10021:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10011:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10011:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10011:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9984:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9993:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9980:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9980:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10005:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9976:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9976:32:19" + }, + "nodeType": "YulIf", + "src": "9973:2:19" + }, + { + "nodeType": "YulBlock", + "src": "10035:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10049:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10063:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10053:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10077:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10123:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10134:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10119:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10119:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10143:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "10087:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "10087:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10077:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9933:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9944:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9956:6:19", + "type": "" + } + ], + "src": "9886:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10257:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10303:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10312:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10315:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10305:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10305:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10305:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10278:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10287:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10274:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10274:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10299:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10270:32:19" + }, + "nodeType": "YulIf", + "src": "10267:2:19" + }, + { + "nodeType": "YulBlock", + "src": "10329:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10343:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10357:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10347:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10371:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10406:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10417:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10402:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10426:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10381:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10381:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10371:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10454:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10468:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10482:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10472:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10497:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10532:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10543:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10528:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10552:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10507:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10507:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10497:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10219:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10230:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10242:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10250:6:19", + "type": "" + } + ], + "src": "10174:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10728:821:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10775:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10784:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10787:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10777:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10777:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10777:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10749:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10758:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10745:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10745:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10770:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10741:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10741:33:19" + }, + "nodeType": "YulIf", + "src": "10738:2:19" + }, + { + "nodeType": "YulBlock", + "src": "10801:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10815:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10829:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10819:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10843:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10878:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10889:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10874:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10874:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10898:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10853:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10853:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10843:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10926:113:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10940:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10954:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10944:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10969:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11001:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11012:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10997:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10997:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11021:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "10979:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "10979:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10969:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11049:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11063:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11077:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11067:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11092:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11125:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11136:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11121:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11121:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11145:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "11102:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "11102:51:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11092:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11173:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11187:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11201:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11191:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11216:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11251:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11262:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11247:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11247:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11271:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "11226:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11226:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "11216:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11299:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11313:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11327:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11317:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11343:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11378:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11389:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11374:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11374:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11398:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "11353:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11353:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "11343:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11426:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11440:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11454:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11444:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11470:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11504:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11515:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11500:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11500:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11524:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint96", + "nodeType": "YulIdentifier", + "src": "11480:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "11480:52:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "11470:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_boolt_uint8t_bytes32t_bytes32t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10658:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10669:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10681:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10689:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10697:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "10705:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "10713:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "10721:6:19", + "type": "" + } + ], + "src": "10583:966:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11651:442:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11697:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11706:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11709:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11699:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11699:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11699:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11672:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11681:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11668:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11668:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11693:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11664:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11664:32:19" + }, + "nodeType": "YulIf", + "src": "11661:2:19" + }, + { + "nodeType": "YulBlock", + "src": "11723:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11737:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11751:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11741:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11765:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11800:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11811:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11796:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11796:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11820:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11775:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11775:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11765:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11848:113:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11862:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11876:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11866:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11891:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11923:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11934:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11919:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11919:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11943:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "11901:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "11901:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11891:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11971:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11985:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11999:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11989:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12014:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12048:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12059:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12044:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12044:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12068:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint96", + "nodeType": "YulIdentifier", + "src": "12024:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "12024:52:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12014:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_boolt_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11605:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11616:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11628:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11636:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11644:6:19", + "type": "" + } + ], + "src": "11555:538:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12175:204:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12221:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12230:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12233:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12223:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12223:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12223:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12196:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12205:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12192:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12217:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12188:32:19" + }, + "nodeType": "YulIf", + "src": "12185:2:19" + }, + { + "nodeType": "YulBlock", + "src": "12247:125:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12261:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12275:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12265:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12289:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12334:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12345:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12330:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12330:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12354:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint96_fromMemory", + "nodeType": "YulIdentifier", + "src": "12299:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "12299:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12289:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint96_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12145:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12156:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12168:6:19", + "type": "" + } + ], + "src": "12099:280:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12465:99:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12509:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12517:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "12475:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "12475:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12475:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "12530:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12548:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12553:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12544:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12544:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "12530:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12438:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12446:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "12454:10:19", + "type": "" + } + ], + "src": "12385:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12668:94:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12678:78:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12744:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12752:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12692:51:19" + }, + "nodeType": "YulFunctionCall", + "src": "12692:64:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "12678:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12641:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12649:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "12657:10:19", + "type": "" + } + ], + "src": "12570:192:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12868:96:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12878:80:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12946:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12954:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12892:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "12892:66:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "12878:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12841:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12849:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "12857:10:19", + "type": "" + } + ], + "src": "12768:196:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13050:99:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13094:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13102:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "13060:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "13060:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13060:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "13115:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13133:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13138:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13129:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13129:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "13115:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13023:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13031:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "13039:10:19", + "type": "" + } + ], + "src": "12970:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13228:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13245:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13289:5:19" + } + ], + "functionName": { + "name": "convert_t_address_payable_to_t_address", + "nodeType": "YulIdentifier", + "src": "13250:38:19" + }, + "nodeType": "YulFunctionCall", + "src": "13250:45:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13238:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13238:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13238:58:19" + } + ] + }, + "name": "abi_encode_t_address_payable_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13216:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13223:3:19", + "type": "" + } + ], + "src": "13155:147:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13363:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13380:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13403:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "13385:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "13385:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13373:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13373:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13373:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13351:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13358:3:19", + "type": "" + } + ], + "src": "13308:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13487:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13504:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13527:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "13509:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "13509:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13497:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13497:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13497:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13475:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13482:3:19", + "type": "" + } + ], + "src": "13422:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13700:608:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13710:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13772:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13724:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "13724:54:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13714:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13787:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13868:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13873:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13794:73:19" + }, + "nodeType": "YulFunctionCall", + "src": "13794:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13787:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13889:71:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13954:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "13904:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "13904:56:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "13893:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13969:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "13983:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "13973:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14059:224:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14073:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "14100:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "14094:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "14094:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "14077:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14120:70:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "14171:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14186:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "14127:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "14127:63:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14120:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14203:70:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "14266:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "14213:52:19" + }, + "nodeType": "YulFunctionCall", + "src": "14213:60:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "14203:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14021:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14024:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14018:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "14018:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "14032:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14034:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14043:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14046:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14039:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14039:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14034:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "14003:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14005:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14014:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "14009:1:19", + "type": "" + } + ] + } + ] + }, + "src": "13999:284:19" + }, + { + "nodeType": "YulAssignment", + "src": "14292:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14299:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14292:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13679:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13686:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13695:3:19", + "type": "" + } + ], + "src": "13576:732:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14482:841:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14492:77:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14563:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "14506:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "14506:63:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14496:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14578:102:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14668:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14673:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14585:82:19" + }, + "nodeType": "YulFunctionCall", + "src": "14585:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14578:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14689:20:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14706:3:19" + }, + "variables": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14693:9:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14718:39:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14734:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14743:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14751:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "14739:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14739:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14730:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14730:27:19" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14722:4:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14766:80:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14840:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "14781:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "14781:65:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "14770:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "14855:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "14869:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "14859:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14945:333:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14966:3:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14975:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14981:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14971:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14971:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14959:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14959:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14959:33:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15005:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "15032:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "15026:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "15026:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "15009:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15052:90:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "15122:13:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15137:4:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15060:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "15060:82:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15052:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15155:79:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "15227:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15165:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "15165:69:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "15155:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15247:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15258:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15263:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15254:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15254:14:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15247:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14907:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14910:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14904:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "14904:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "14918:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14920:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14929:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14932:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14925:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14925:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14920:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "14889:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14891:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14900:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "14895:1:19", + "type": "" + } + ] + } + ] + }, + "src": "14885:393:19" + }, + { + "nodeType": "YulAssignment", + "src": "15287:11:19", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15294:4:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15287:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15307:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15314:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15307:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14461:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14468:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14477:3:19", + "type": "" + } + ], + "src": "14340:983:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15501:847:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15511:78:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15583:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15525:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "15525:64:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15515:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15598:103:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15689:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15694:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15605:83:19" + }, + "nodeType": "YulFunctionCall", + "src": "15605:96:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15598:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15710:20:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15727:3:19" + }, + "variables": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15714:9:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15739:39:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15755:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15764:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15772:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "15760:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15760:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15751:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15751:27:19" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15743:4:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15787:81:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15862:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15802:59:19" + }, + "nodeType": "YulFunctionCall", + "src": "15802:66:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "15791:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15877:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "15891:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "15881:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15967:336:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15988:3:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15997:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16003:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15993:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15993:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15981:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15981:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15981:33:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16027:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16054:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16048:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "16048:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "16031:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16074:92:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "16146:13:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16161:4:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16082:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "16082:84:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16074:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16179:80:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16252:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16189:62:19" + }, + "nodeType": "YulFunctionCall", + "src": "16189:70:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16179:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16272:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16283:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16288:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16279:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16279:14:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16272:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15929:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15932:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "15926:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "15926:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "15940:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15942:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15951:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15954:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15947:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15947:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15942:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "15911:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15913:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15922:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "15917:1:19", + "type": "" + } + ] + } + ] + }, + "src": "15907:396:19" + }, + { + "nodeType": "YulAssignment", + "src": "16312:11:19", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16319:4:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16312:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16332:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16339:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16332:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15480:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15487:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15496:3:19", + "type": "" + } + ], + "src": "15357:991:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16508:608:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16518:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16580:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16532:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "16532:54:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16522:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16595:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16676:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16681:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16602:73:19" + }, + "nodeType": "YulFunctionCall", + "src": "16602:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16595:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16697:71:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16762:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16712:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "16712:56:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "16701:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16777:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "16791:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "16781:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16867:224:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16881:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16908:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16902:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "16902:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "16885:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16928:70:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "16979:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16994:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "16935:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "16935:63:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16928:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17011:70:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "17074:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17021:52:19" + }, + "nodeType": "YulFunctionCall", + "src": "17021:60:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "17011:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16829:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16832:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "16826:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "16826:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "16840:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16842:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16851:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16854:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16847:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16847:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16842:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "16811:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16813:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16822:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "16817:1:19", + "type": "" + } + ] + } + ] + }, + "src": "16807:284:19" + }, + { + "nodeType": "YulAssignment", + "src": "17100:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17107:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17100:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16487:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16494:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16503:3:19", + "type": "" + } + ], + "src": "16384:732:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17171:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17188:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17208:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "17193:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "17193:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17181:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17181:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17181:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17159:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17166:3:19", + "type": "" + } + ], + "src": "17122:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17286:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17303:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17323:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "17308:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "17308:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17296:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17296:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17296:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17274:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17281:3:19", + "type": "" + } + ], + "src": "17227:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17407:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17424:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17447:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "17429:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "17429:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17417:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17417:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17417:37:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17395:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17402:3:19", + "type": "" + } + ], + "src": "17342:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17549:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17566:3:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17609:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "17591:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "17591:24:19" + } + ], + "functionName": { + "name": "leftAlign_t_bytes32", + "nodeType": "YulIdentifier", + "src": "17571:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "17571:45:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17559:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "17559:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17559:58:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17537:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17544:3:19", + "type": "" + } + ], + "src": "17466:157:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17709:260:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17719:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17765:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17733:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "17733:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17723:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17780:67:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17835:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17840:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17787:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "17787:60:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17780:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17882:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17889:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17878:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17878:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17896:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17901:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17856:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17856:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17856:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17917:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17928:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17955:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17933:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17933:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17924:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17924:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17917:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17690:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17697:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17705:3:19", + "type": "" + } + ], + "src": "17629:340:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18065:270:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18075:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18121:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "18089:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "18089:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18079:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18136:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18201:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18206:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18143:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "18143:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18136:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18248:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18255:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18244:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18244:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18262:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18267:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "18222:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "18222:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18222:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "18283:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18294:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18321:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "18299:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "18299:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18290:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18290:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18283:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18046:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18053:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18061:3:19", + "type": "" + } + ], + "src": "17975:360:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18450:845:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18460:29:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18483:5:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "18477:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "18477:12:19" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "18464:9:19", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "18538:273:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18584:42:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18606:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18617:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18602:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18602:17:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18621:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18598:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18598:28:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18588:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18639:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18704:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18709:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18646:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "18646:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18639:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18736:3:19" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18745:9:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18760:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "18756:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18756:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18741:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18741:25:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18729:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18729:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18729:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "18780:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18791:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18796:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18787:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18787:14:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18780:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18531:280:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18536:1:19", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18827:462:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18872:31:19", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18890:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18901:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18886:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18886:17:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18876:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18916:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18981:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18986:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18923:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "18923:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18916:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "19006:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19052:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_bytes_storage", + "nodeType": "YulIdentifier", + "src": "19021:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "19021:37:19" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "19010:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "19071:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19080:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "19075:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19138:110:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19167:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19172:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19163:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19163:11:19" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "19182:7:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "19176:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "19176:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19156:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19156:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19156:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "19208:26:19", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "19223:7:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19232:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19219:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19219:15:19" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "19208:7:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19105:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "19108:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "19102:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "19102:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "19116:21:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19118:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19127:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19130:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19123:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19123:12:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19118:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "19098:3:19", + "statements": [] + }, + "src": "19094:154:19" + }, + { + "nodeType": "YulAssignment", + "src": "19261:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19272:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "19277:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19268:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19268:11:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "19261:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18820:469:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18825:1:19", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18509:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18520:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18505:17:19" + }, + "nodeType": "YulSwitch", + "src": "18498:791:19" + } + ] + }, + "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18431:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18438:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18446:3:19", + "type": "" + } + ], + "src": "18363:932:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19389:89:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19406:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19465:5:19" + } + ], + "functionName": { + "name": "convert_t_contract$_Dclm8Interface_$5713_to_t_address", + "nodeType": "YulIdentifier", + "src": "19411:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "19411:60:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19399:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19399:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19399:73:19" + } + ] + }, + "name": "abi_encode_t_contract$_Dclm8Interface_$5713_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19377:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19384:3:19", + "type": "" + } + ], + "src": "19301:177:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19575:92:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19592:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19654:5:19" + } + ], + "functionName": { + "name": "convert_t_contract$_TimelockInterface_$5679_to_t_address", + "nodeType": "YulIdentifier", + "src": "19597:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "19597:63:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19585:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19585:76:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19585:76:19" + } + ] + }, + "name": "abi_encode_t_contract$_TimelockInterface_$5679_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19563:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19570:3:19", + "type": "" + } + ], + "src": "19484:183:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19754:82:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19771:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19823:5:19" + } + ], + "functionName": { + "name": "convert_t_enum$_ProposalState_$4334_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "19776:46:19" + }, + "nodeType": "YulFunctionCall", + "src": "19776:53:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19764:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19764:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19764:66:19" + } + ] + }, + "name": "abi_encode_t_enum$_ProposalState_$4334_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19742:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19749:3:19", + "type": "" + } + ], + "src": "19673:163:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19915:74:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19932:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19976:5:19" + } + ], + "functionName": { + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "19937:38:19" + }, + "nodeType": "YulFunctionCall", + "src": "19937:45:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19925:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19925:58:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19925:58:19" + } + ] + }, + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "19903:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19910:3:19", + "type": "" + } + ], + "src": "19842:147:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20077:262:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "20087:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20134:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "20101:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "20101:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20091:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "20149:68:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20205:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20210:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "20156:48:19" + }, + "nodeType": "YulFunctionCall", + "src": "20156:61:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20149:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20252:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20259:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20248:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20248:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20266:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20271:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "20226:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "20226:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20226:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "20287:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20298:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20325:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "20303:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "20303:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20294:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20294:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20287:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20058:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20065:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20073:3:19", + "type": "" + } + ], + "src": "19995:344:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20437:272:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "20447:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20494:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "20461:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "20461:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20451:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "20509:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20575:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20580:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20516:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "20516:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20509:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20622:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20629:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20618:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20618:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20636:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20641:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "20596:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "20596:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20596:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "20657:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20668:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20695:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "20673:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "20673:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20664:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20664:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20657:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20418:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20425:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20433:3:19", + "type": "" + } + ], + "src": "20345:364:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20828:848:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "20838:29:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20861:5:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "20855:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "20855:12:19" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "20842:9:19", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "20916:274:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "20962:42:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "20984:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20995:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "20980:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20980:17:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20999:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "20976:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20976:28:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20966:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21017:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21083:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21088:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21024:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21024:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21017:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21115:3:19" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "21124:9:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21139:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "21135:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21135:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "21120:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21120:25:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21108:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21108:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21108:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "21159:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21170:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21175:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21166:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21166:14:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "21159:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "20909:281:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20914:1:19", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21206:464:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21251:31:19", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "21269:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21280:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "21265:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21265:17:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "21255:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21295:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21361:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21366:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21302:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21302:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21295:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "21386:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21433:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "21401:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "21401:38:19" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "21390:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "21452:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21461:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "21456:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21519:110:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21548:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21553:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21544:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21544:11:19" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "21563:7:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "21557:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "21557:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21537:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21537:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21537:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "21589:26:19", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "21604:7:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21613:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21600:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21600:15:19" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "21589:7:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21486:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "21489:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "21483:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "21483:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "21497:21:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21499:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21508:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21511:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21504:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21504:12:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21499:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "21479:3:19", + "statements": [] + }, + "src": "21475:154:19" + }, + { + "nodeType": "YulAssignment", + "src": "21642:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21653:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "21658:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21649:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21649:11:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "21642:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "21199:471:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21204:1:19", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "20887:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20898:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "20883:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20883:17:19" + }, + "nodeType": "YulSwitch", + "src": "20876:794:19" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20809:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20816:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "20824:3:19", + "type": "" + } + ], + "src": "20739:937:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21828:244:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21838:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21904:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21909:2:19", + "type": "", + "value": "58" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21845:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21845:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21838:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21933:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21938:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21929:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21929:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21942:34:19", + "type": "", + "value": "Governor::propose: proposer vote" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21922:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21922:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21922:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21998:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22003:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21994:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21994:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22008:28:19", + "type": "", + "value": "s below proposal threshold" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21987:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21987:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21987:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "22047:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22063:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22054:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22047:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21816:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21824:3:19", + "type": "" + } + ], + "src": "21682:390:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22224:249:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22234:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22300:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22305:2:19", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22241:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22241:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22234:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22329:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22334:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22325:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22325:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22338:34:19", + "type": "", + "value": "Governor::propose: proposal func" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22318:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22318:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22318:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22394:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22399:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22390:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22390:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22404:33:19", + "type": "", + "value": "tion information arity mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22383:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22383:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22383:55:19" + }, + { + "nodeType": "YulAssignment", + "src": "22448:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22459:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22464:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22455:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22455:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22448:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22212:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22220:3:19", + "type": "" + } + ], + "src": "22078:395:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22625:289:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22635:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22701:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22706:2:19", + "type": "", + "value": "69" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22642:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22642:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22635:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22730:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22735:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22726:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22726:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22739:34:19", + "type": "", + "value": "Governor::__queueSetTimelockPend" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22719:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22719:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22719:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22795:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22800:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22791:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22791:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22805:34:19", + "type": "", + "value": "ingAdmin: sender must be gov gua" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22784:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22784:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22784:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22861:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22866:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22857:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22857:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22871:7:19", + "type": "", + "value": "rdian" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22850:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22850:29:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22850:29:19" + }, + { + "nodeType": "YulAssignment", + "src": "22889:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22900:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22905:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22896:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22896:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22889:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22613:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22621:3:19", + "type": "" + } + ], + "src": "22479:435:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23066:288:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23076:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23142:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23147:2:19", + "type": "", + "value": "68" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23083:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23083:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23076:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23171:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23176:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23167:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23167:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23180:34:19", + "type": "", + "value": "Governor::_castVote: no eligible" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23160:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23160:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23160:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23236:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23241:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23232:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23232:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23246:34:19", + "type": "", + "value": " votes prior to proposal start b" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23225:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23225:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23225:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23302:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23307:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23298:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23298:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23312:6:19", + "type": "", + "value": "lock" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23291:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23291:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23291:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "23329:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23340:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23345:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23336:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23336:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23329:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23054:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23062:3:19", + "type": "" + } + ], + "src": "22920:434:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23506:221:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23516:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23582:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23587:2:19", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23523:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23523:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23516:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23611:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23616:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23607:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23607:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23620:34:19", + "type": "", + "value": "Governor::propose: too many acti" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23600:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23600:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23600:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23676:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23681:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23672:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23672:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23686:5:19", + "type": "", + "value": "ons" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23665:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23665:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23665:27:19" + }, + { + "nodeType": "YulAssignment", + "src": "23702:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23713:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23718:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23709:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23709:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23702:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23494:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23502:3:19", + "type": "" + } + ], + "src": "23360:367:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23879:235:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23889:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23955:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23960:2:19", + "type": "", + "value": "49" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23896:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23896:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23889:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23984:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23989:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23980:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23980:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23993:34:19", + "type": "", + "value": "Governor::cancel: cannot cancel " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23973:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23973:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23973:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24049:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24054:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24045:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24045:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24059:19:19", + "type": "", + "value": "executed proposal" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24038:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24038:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24038:41:19" + }, + { + "nodeType": "YulAssignment", + "src": "24089:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24100:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24105:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24096:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24096:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24089:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23867:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23875:3:19", + "type": "" + } + ], + "src": "23733:381:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24284:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24294:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24378:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24383:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "24301:76:19" + }, + "nodeType": "YulFunctionCall", + "src": "24301:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24294:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24406:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24411:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24402:11:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24415:66:19", + "type": "", + "value": "0x1901000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24395:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24395:87:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24395:87:19" + }, + { + "nodeType": "YulAssignment", + "src": "24492:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24503:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24508:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24499:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24499:11:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24492:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24272:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24280:3:19", + "type": "" + } + ], + "src": "24120:396:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24668:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24678:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24744:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24749:2:19", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24685:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24685:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24678:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24773:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24778:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24769:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24769:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24782:34:19", + "type": "", + "value": "Governor::propose: must provide " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24762:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24762:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24762:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24838:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24843:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24834:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24834:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24848:9:19", + "type": "", + "value": "actions" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24827:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24827:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24827:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "24868:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24879:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24884:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24875:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24875:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24868:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24656:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24664:3:19", + "type": "" + } + ], + "src": "24522:371:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25045:304:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25055:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25121:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25126:2:19", + "type": "", + "value": "84" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25062:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25062:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25055:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25150:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25155:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25146:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25146:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25159:34:19", + "type": "", + "value": "Governor::propose: one live prop" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25139:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25139:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25139:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25215:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25220:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25211:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25211:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25225:34:19", + "type": "", + "value": "osal per proposer, found an alre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25204:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25204:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25204:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25281:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25286:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25277:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25277:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25291:22:19", + "type": "", + "value": "ady pending proposal" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25270:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25270:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25270:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "25324:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25335:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25340:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25331:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25331:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25324:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25033:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25041:3:19", + "type": "" + } + ], + "src": "24899:450:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25501:291:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25511:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25577:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25582:2:19", + "type": "", + "value": "71" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25518:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25518:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25511:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25606:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25611:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25602:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25602:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25615:34:19", + "type": "", + "value": "Governor::__executeSetTimelockPe" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25595:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25595:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25595:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25671:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25676:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25667:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25667:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25681:34:19", + "type": "", + "value": "ndingAdmin: sender must be gov g" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25660:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25660:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25660:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25737:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25742:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25733:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25733:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25747:9:19", + "type": "", + "value": "uardian" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25726:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25726:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25726:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "25767:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25778:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25783:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25774:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25774:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25767:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25489:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25497:3:19", + "type": "" + } + ], + "src": "25355:437:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25944:176:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25954:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26020:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26025:2:19", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25961:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25961:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25954:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26049:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26054:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26045:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26045:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26058:26:19", + "type": "", + "value": "setPendingAdmin(address)" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26038:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26038:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26038:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "26095:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26106:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26111:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26102:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26102:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26095:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25932:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25940:3:19", + "type": "" + } + ], + "src": "25798:322:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26272:222:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26282:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26348:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26353:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26289:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26289:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26282:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26377:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26382:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26373:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26373:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26386:34:19", + "type": "", + "value": "Governor::state: invalid proposa" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26366:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26366:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26366:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26442:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26447:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26438:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26438:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26452:6:19", + "type": "", + "value": "l id" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26431:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26431:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26431:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "26469:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26480:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26485:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26476:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26476:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26469:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26260:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26268:3:19", + "type": "" + } + ], + "src": "26126:368:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26646:303:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26656:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26722:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26727:2:19", + "type": "", + "value": "83" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26663:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26663:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26656:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26751:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26756:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26747:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26747:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26760:34:19", + "type": "", + "value": "Governor::propose: one live prop" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26740:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26740:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26740:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26816:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26821:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26812:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26826:34:19", + "type": "", + "value": "osal per proposer, found an alre" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26805:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26805:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26882:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26887:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26878:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26878:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26892:21:19", + "type": "", + "value": "ady active proposal" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26871:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26871:43:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26871:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "26924:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26935:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26940:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26931:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26931:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26924:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26634:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26642:3:19", + "type": "" + } + ], + "src": "26500:449:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27101:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27111:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27177:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27182:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27118:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27118:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27111:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27206:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27211:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27202:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27215:34:19", + "type": "", + "value": "Governor::_castVote: votes excee" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27195:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27195:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27195:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27271:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27276:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27267:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27267:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27281:20:19", + "type": "", + "value": "ds eligible amount" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27260:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27260:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27260:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "27312:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27323:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27328:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27319:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27319:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27312:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27089:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27097:3:19", + "type": "" + } + ], + "src": "26955:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27489:250:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27499:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27565:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27570:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27506:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27506:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27499:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27594:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27590:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27590:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27603:34:19", + "type": "", + "value": "Governor::execute: proposal can " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27583:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27583:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27583:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27659:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27664:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27655:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27655:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27669:34:19", + "type": "", + "value": "only be executed if it is queued" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27648:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27648:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27648:56:19" + }, + { + "nodeType": "YulAssignment", + "src": "27714:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27725:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27730:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27721:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27721:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27714:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27477:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27485:3:19", + "type": "" + } + ], + "src": "27343:396:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27891:169:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27901:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27967:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27972:2:19", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27908:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27908:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27901:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27996:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28001:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27992:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27992:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28005:19:19", + "type": "", + "value": "addition overflow" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27985:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27985:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27985:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "28035:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28046:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28051:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28042:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28042:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28035:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27879:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27887:3:19", + "type": "" + } + ], + "src": "27745:315:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28212:235:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28222:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28288:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28293:2:19", + "type": "", + "value": "49" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28229:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28229:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28222:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28317:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28322:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28313:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28313:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28326:34:19", + "type": "", + "value": "Governor::__abdicate: sender mus" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28306:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28306:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28306:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28382:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28387:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28378:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28378:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28392:19:19", + "type": "", + "value": "t be gov guardian" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28371:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28371:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28371:41:19" + }, + { + "nodeType": "YulAssignment", + "src": "28422:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28433:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28438:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28429:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28429:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28422:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28200:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28208:3:19", + "type": "" + } + ], + "src": "28066:381:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28599:249:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28609:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28675:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28680:2:19", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28616:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28616:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28609:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28704:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28709:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28700:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28700:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28713:34:19", + "type": "", + "value": "Governor::_queueOrRevert: propos" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28693:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28693:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28693:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28769:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28774:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28765:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28765:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28779:33:19", + "type": "", + "value": "al action already queued at eta" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28758:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28758:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28758:55:19" + }, + { + "nodeType": "YulAssignment", + "src": "28823:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28834:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28839:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28830:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28830:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28823:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28587:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28595:3:19", + "type": "" + } + ], + "src": "28453:395:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29000:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29010:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29076:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29081:2:19", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29017:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29017:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29010:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29105:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29110:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29101:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29101:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29114:34:19", + "type": "", + "value": "Governor::__acceptAdmin: sender " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29094:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29094:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29094:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29170:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29175:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29166:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29166:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29180:22:19", + "type": "", + "value": "must be gov guardian" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29159:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29159:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29159:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "29213:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29224:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29229:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29220:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29220:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29213:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28988:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28996:3:19", + "type": "" + } + ], + "src": "28854:384:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29390:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29400:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29466:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29471:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29407:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29407:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29400:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29495:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29500:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29491:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29491:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29504:34:19", + "type": "", + "value": "Governor::_castVote: voter alrea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29484:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29484:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29484:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29560:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29565:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29556:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29570:10:19", + "type": "", + "value": "dy voted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29549:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29549:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29549:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "29591:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29602:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29607:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29598:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29598:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29591:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29378:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29386:3:19", + "type": "" + } + ], + "src": "29244:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29768:228:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29778:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29844:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29849:2:19", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29785:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29785:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29778:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29873:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29878:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29869:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29869:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29882:34:19", + "type": "", + "value": "Governor::cancel: proposer above" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29862:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29862:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29862:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29938:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29943:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29934:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29934:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29948:12:19", + "type": "", + "value": " threshold" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29927:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29927:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29927:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "29971:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29982:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29987:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29978:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29978:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29971:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29756:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29764:3:19", + "type": "" + } + ], + "src": "29622:374:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30148:223:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30158:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30224:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30229:2:19", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30165:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30165:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30158:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30253:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30258:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30249:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30249:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30262:34:19", + "type": "", + "value": "Governor::_castVote: voting is c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30242:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30242:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30242:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30318:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30323:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30314:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30314:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30328:7:19", + "type": "", + "value": "losed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30307:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30307:29:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30307:29:19" + }, + { + "nodeType": "YulAssignment", + "src": "30346:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30357:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30362:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30353:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30353:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30346:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30136:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30144:3:19", + "type": "" + } + ], + "src": "30002:369:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30523:173:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30533:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30599:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30604:2:19", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30540:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30540:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30533:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30628:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30633:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30624:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30624:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30637:23:19", + "type": "", + "value": "subtraction underflow" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30617:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30617:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30617:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "30671:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30682:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30687:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30678:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30678:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30671:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30511:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30519:3:19", + "type": "" + } + ], + "src": "30377:319:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30848:249:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30858:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30924:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30929:2:19", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30865:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30865:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30858:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30953:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30958:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30949:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30949:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30962:34:19", + "type": "", + "value": "Governor::queue: proposal can on" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30942:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30942:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30942:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31018:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31023:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31014:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31014:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31028:33:19", + "type": "", + "value": "ly be queued if it is succeeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31007:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31007:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31007:55:19" + }, + { + "nodeType": "YulAssignment", + "src": "31072:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31083:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31088:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31079:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31079:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31072:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30836:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30844:3:19", + "type": "" + } + ], + "src": "30702:395:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31249:228:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31259:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31325:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31330:2:19", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31266:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31266:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31259:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31354:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31359:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31350:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31350:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31363:34:19", + "type": "", + "value": "Governor::castVoteBySig: invalid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31343:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31343:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31343:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31419:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31424:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31415:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31415:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31429:12:19", + "type": "", + "value": " signature" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31408:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31408:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31408:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "31452:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31463:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31468:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31459:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31459:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31452:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31237:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31245:3:19", + "type": "" + } + ], + "src": "31103:374:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31657:559:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "31667:26:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31683:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31688:4:19", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31679:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31679:14:19" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31671:4:19", + "type": "" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "31703:162:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "31742:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31772:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31779:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31768:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31768:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "31762:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "31762:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "31746:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "31826:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31844:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31849:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31840:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31840:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool", + "nodeType": "YulIdentifier", + "src": "31798:27:19" + }, + "nodeType": "YulFunctionCall", + "src": "31798:57:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31798:57:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "31875:161:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "31913:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "31943:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31950:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31939:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31939:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "31933:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "31933:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "31917:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "31997:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32015:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32020:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32011:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32011:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool", + "nodeType": "YulIdentifier", + "src": "31969:27:19" + }, + "nodeType": "YulFunctionCall", + "src": "31969:57:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31969:57:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "32046:163:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "32082:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32112:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32119:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32108:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32108:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "32102:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "32102:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "32086:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "32170:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32188:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32193:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32184:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32184:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint96", + "nodeType": "YulIdentifier", + "src": "32138:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "32138:61:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32138:61:19" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_Receipt_$4325_memory_ptr_to_t_struct$_Receipt_$4325_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "31644:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31651:3:19", + "type": "" + } + ], + "src": "31541:675:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32277:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32294:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32317:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32299:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "32299:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32287:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32287:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32287:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32265:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32272:3:19", + "type": "" + } + ], + "src": "32222:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32401:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32418:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32441:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "32423:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "32423:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32411:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32411:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32411:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32389:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32396:3:19", + "type": "" + } + ], + "src": "32336:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32521:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32538:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32559:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "32543:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "32543:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32531:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32531:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32531:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32509:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32516:3:19", + "type": "" + } + ], + "src": "32460:112:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32642:65:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32659:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32694:5:19" + } + ], + "functionName": { + "name": "convert_t_uint96_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "32664:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "32664:36:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32652:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32652:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32652:49:19" + } + ] + }, + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32630:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32637:3:19", + "type": "" + } + ], + "src": "32578:129:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32766:52:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32783:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32805:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "32788:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "32788:23:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32776:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32776:36:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32776:36:19" + } + ] + }, + "name": "abi_encode_t_uint96_to_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32754:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32761:3:19", + "type": "" + } + ], + "src": "32713:105:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32887:52:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32904:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "32926:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "32909:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "32909:23:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32897:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32897:36:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32897:36:19" + } + ] + }, + "name": "abi_encode_t_uint96_to_t_uint96_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "32875:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32882:3:19", + "type": "" + } + ], + "src": "32824:115:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33190:418:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33201:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33352:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33208:142:19" + }, + "nodeType": "YulFunctionCall", + "src": "33208:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33201:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "33428:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33437:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33366:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "33366:75:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33366:75:19" + }, + { + "nodeType": "YulAssignment", + "src": "33450:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33461:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33466:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33457:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33457:12:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33450:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "33541:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33550:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "33479:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "33479:75:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33479:75:19" + }, + { + "nodeType": "YulAssignment", + "src": "33563:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33574:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33579:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33570:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33570:12:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33563:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "33592:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33599:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33592:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33161:3:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "33167:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33175:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33186:3:19", + "type": "" + } + ], + "src": "32945:663:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33712:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33722:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33734:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33745:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33730:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33730:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33722:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "33802:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33815:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33826:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33811:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33811:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "33758:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "33758:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33758:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33684:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33707:4:19", + "type": "" + } + ], + "src": "33614:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33976:214:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33986:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "33998:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34009:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33994:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33994:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "33986:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34074:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34087:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34098:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34083:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "34022:51:19" + }, + "nodeType": "YulFunctionCall", + "src": "34022:79:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34022:79:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "34155:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34168:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34179:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34164:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34164:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "34111:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "34111:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34111:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "33940:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "33952:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "33960:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "33971:4:19", + "type": "" + } + ], + "src": "33842:348:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34505:655:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34515:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34527:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34538:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34523:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34523:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34515:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "34596:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34609:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34620:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34605:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34605:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "34552:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "34552:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34552:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "34685:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34698:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34709:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34694:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34694:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "34633:51:19" + }, + "nodeType": "YulFunctionCall", + "src": "34633:80:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34633:80:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34734:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34745:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34730:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34730:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34754:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34760:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34750:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34750:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34723:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34723:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34723:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "34780:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34914:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34788:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "34788:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34780:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34940:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34951:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34936:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34936:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34960:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "34966:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "34956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34956:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34929:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34929:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34929:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "34986:84:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "35056:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35065:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34994:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "34994:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "34986:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "35124:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35137:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35148:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35133:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35133:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35080:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "35080:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35080:73:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_rational_0_by_1_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "34453:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "34465:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "34473:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "34481:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "34489:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "34500:4:19", + "type": "" + } + ], + "src": "34196:964:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35292:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35302:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35314:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35325:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35310:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35310:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35302:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "35382:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35395:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35406:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35391:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35391:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35338:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "35338:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35338:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "35463:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35476:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35487:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35472:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35472:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35419:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "35419:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35419:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35256:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35268:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35276:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35287:4:19", + "type": "" + } + ], + "src": "35166:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35679:364:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35689:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35701:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35712:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35697:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35697:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "35689:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "35770:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35783:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35794:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35779:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35779:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "35726:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "35726:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35726:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "35851:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35864:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35875:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35860:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35860:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35807:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "35807:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35807:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "35927:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "35940:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35951:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35936:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35936:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "35889:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "35889:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35889:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "36008:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36021:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36032:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36017:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36017:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "35965:42:19" + }, + "nodeType": "YulFunctionCall", + "src": "35965:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35965:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_bool_t_uint96__to_t_address_t_uint256_t_bool_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "35627:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "35639:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "35647:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "35655:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "35663:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "35674:4:19", + "type": "" + } + ], + "src": "35504:539:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36297:594:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "36307:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36319:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36330:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36315:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36315:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36307:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "36388:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36401:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36412:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36397:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36397:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "36344:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "36344:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36344:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "36469:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36482:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36493:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36478:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36478:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "36425:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "36425:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36425:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36518:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36529:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36514:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36514:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36538:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36544:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36534:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36534:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36507:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "36507:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36507:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "36564:86:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "36636:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36645:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36572:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "36572:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36564:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36671:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36682:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36667:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36667:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36691:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36697:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "36687:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36687:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "36660:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "36660:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36660:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "36717:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "36787:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36796:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "36725:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "36725:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "36717:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "36855:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "36868:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36879:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36864:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36864:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "36811:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "36811:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36811:73:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "36237:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "36249:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "36257:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "36265:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "36273:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "36281:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36292:4:19", + "type": "" + } + ], + "src": "36049:842:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37139:588:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37149:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37161:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37172:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37157:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37157:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37149:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "37230:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37243:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37254:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37239:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37239:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "37186:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "37186:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37186:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "37311:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37324:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37335:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37320:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37320:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "37267:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "37267:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37267:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37360:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37371:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37356:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37356:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37380:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37386:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37376:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37376:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37349:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37349:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37349:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "37406:83:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "37475:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37484:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37414:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "37414:75:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37406:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37510:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37521:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37506:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37506:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37530:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37536:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37526:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37499:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37499:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37499:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "37556:81:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "37623:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37632:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "37564:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "37564:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37556:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "37691:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37704:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37715:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37700:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37700:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "37647:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "37647:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37647:73:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37079:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "37091:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "37099:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "37107:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "37115:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "37123:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37134:4:19", + "type": "" + } + ], + "src": "36897:830:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "37857:204:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "37867:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37879:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37890:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37875:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37875:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37867:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "37947:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "37960:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37971:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37956:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "37903:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "37903:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37903:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "38026:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38039:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38050:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38035:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38035:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint96_to_t_uint96_fromStack", + "nodeType": "YulIdentifier", + "src": "37984:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "37984:70:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37984:70:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint96__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "37821:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "37833:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "37841:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "37852:4:19", + "type": "" + } + ], + "src": "37733:328:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38487:813:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "38497:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38509:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38520:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38505:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38497:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38545:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38556:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38541:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38541:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38564:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38570:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38560:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38560:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38534:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38534:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38534:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "38590:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "38692:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38701:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38598:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "38598:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38590:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38727:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38738:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38723:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38723:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38747:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38753:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38743:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38743:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38716:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38716:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38716:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "38773:116:19", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "38875:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38884:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38781:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "38781:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38773:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38910:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38921:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38906:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38906:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38930:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "38936:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38926:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38926:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38899:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38899:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38899:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "38956:136:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "39078:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39087:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "38964:113:19" + }, + "nodeType": "YulFunctionCall", + "src": "38964:128:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38956:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39113:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39124:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39109:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39109:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39133:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39139:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39129:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39129:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39102:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39102:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39102:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "39159:134:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "39279:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39288:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39167:111:19" + }, + "nodeType": "YulFunctionCall", + "src": "39167:126:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39159:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "38435:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "38447:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "38455:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "38463:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "38471:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "38482:4:19", + "type": "" + } + ], + "src": "38067:1233:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39404:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39414:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39426:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39437:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39422:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39414:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39494:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39507:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39518:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39503:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39503:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "39450:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39450:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39450:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39376:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39388:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39399:4:19", + "type": "" + } + ], + "src": "39306:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39716:371:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39726:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39738:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39749:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39734:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39734:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39726:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39807:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39820:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39831:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39816:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39816:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "39763:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39763:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39763:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "39888:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39901:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39912:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39897:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39897:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "39844:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39844:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39844:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "39970:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39983:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39994:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39979:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39979:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "39926:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39926:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39926:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "40052:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40065:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40076:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40061:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40061:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "40008:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40008:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40008:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39664:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "39676:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "39684:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "39692:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39700:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39711:4:19", + "type": "" + } + ], + "src": "39534:553:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40241:282:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40251:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40263:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40274:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40259:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40259:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40251:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "40331:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40344:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40355:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40340:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40340:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "40287:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40287:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40287:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "40412:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40425:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40436:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40421:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40421:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "40368:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40368:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40368:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "40488:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40501:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40512:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40497:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40497:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "40450:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "40450:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40450:66:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "40197:9:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "40209:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "40217:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40225:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40236:4:19", + "type": "" + } + ], + "src": "40093:430:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40707:367:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40717:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40729:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40740:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40725:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40725:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40717:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "40798:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40811:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40822:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40807:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40807:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "40754:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40754:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40754:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "40875:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40888:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40899:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40884:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40884:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "40835:39:19" + }, + "nodeType": "YulFunctionCall", + "src": "40835:68:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40835:68:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "40957:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40970:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40981:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40966:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40966:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "40913:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40913:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40913:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "41039:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41052:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41063:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41048:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41048:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "40995:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40995:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40995:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "40655:9:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "40667:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "40675:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "40683:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40691:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40702:4:19", + "type": "" + } + ], + "src": "40529:545:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41201:147:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41211:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41223:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41234:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41219:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41219:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41211:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41314:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41327:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41338:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41323:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41323:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_Dclm8Interface_$5713_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "41247:66:19" + }, + "nodeType": "YulFunctionCall", + "src": "41247:94:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41247:94:19" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_Dclm8Interface_$5713__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41173:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41185:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41196:4:19", + "type": "" + } + ], + "src": "41080:268:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41478:150:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41488:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41500:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41511:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41496:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41496:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41488:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41594:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41607:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41618:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41603:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41603:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_TimelockInterface_$5679_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "41524:69:19" + }, + "nodeType": "YulFunctionCall", + "src": "41524:97:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41524:97:19" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_TimelockInterface_$5679__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41450:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41462:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41473:4:19", + "type": "" + } + ], + "src": "41354:274:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41748:140:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41758:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41770:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41781:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41766:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41766:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41758:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41854:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41867:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41878:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41863:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41863:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_enum$_ProposalState_$4334_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "41794:59:19" + }, + "nodeType": "YulFunctionCall", + "src": "41794:87:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41794:87:19" + } + ] + }, + "name": "abi_encode_tuple_t_enum$_ProposalState_$4334__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41720:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41732:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41743:4:19", + "type": "" + } + ], + "src": "41634:254:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42012:195:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42022:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42034:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42045:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42030:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42030:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42022:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42069:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42080:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42065:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42065:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42088:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42094:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42084:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42084:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42058:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42058:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42058:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "42114:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42186:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42195:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42122:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "42122:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42114:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41984:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41996:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42007:4:19", + "type": "" + } + ], + "src": "41894:313:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42384:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42394:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42406:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42417:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42402:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42394:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42441:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42452:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42437:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42437:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42460:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42466:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42456:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42456:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42430:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42430:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42430:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "42486:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42620:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42494:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "42494:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42486:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42364:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42379:4:19", + "type": "" + } + ], + "src": "42213:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42809:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42819:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42831:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42842:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42827:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42827:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42819:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42866:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42877:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42862:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42862:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42885:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42891:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42881:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42881:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42855:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42855:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42855:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "42911:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43045:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42919:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "42919:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42911:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42789:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42804:4:19", + "type": "" + } + ], + "src": "42638:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43234:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43244:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43256:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43267:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43252:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43252:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43244:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43291:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43302:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43287:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43287:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43310:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43316:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "43306:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43306:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43280:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43280:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43280:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "43336:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43470:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "43344:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "43344:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43336:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43214:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43229:4:19", + "type": "" + } + ], + "src": "43063:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43659:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43669:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43681:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43692:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43677:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43677:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43669:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43716:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43727:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43712:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43712:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43735:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43741:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "43731:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43731:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43705:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43705:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43705:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "43761:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43895:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "43769:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "43769:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43761:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43639:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43654:4:19", + "type": "" + } + ], + "src": "43488:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44084:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44094:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44106:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44117:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44102:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44102:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44094:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44141:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44152:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44137:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44137:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44160:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44166:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44156:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44156:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44130:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44130:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44130:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44186:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44320:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44194:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44194:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44186:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44064:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44079:4:19", + "type": "" + } + ], + "src": "43913:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44509:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44519:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44531:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44542:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44527:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44519:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44566:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44577:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44562:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44562:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44585:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44591:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44581:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44581:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44555:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44555:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44555:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44611:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44745:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44619:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44619:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44611:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44489:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44504:4:19", + "type": "" + } + ], + "src": "44338:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44934:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44944:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44956:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44967:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44952:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44952:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44944:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44991:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45002:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44987:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45010:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45016:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45006:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45006:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44980:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44980:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44980:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45036:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45170:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45044:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45044:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45036:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44914:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44929:4:19", + "type": "" + } + ], + "src": "44763:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45359:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45369:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45381:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45392:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45377:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45377:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45369:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45416:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45427:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45412:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45412:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45435:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45441:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45431:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45431:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45405:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45405:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45405:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45461:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45595:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45469:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45469:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45461:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45339:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45354:4:19", + "type": "" + } + ], + "src": "45188:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45784:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45794:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45806:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45817:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45802:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45802:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45794:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45841:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45852:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45837:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45837:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45860:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45866:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45856:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45856:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45830:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45830:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45886:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46020:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45894:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45894:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45886:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45764:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45779:4:19", + "type": "" + } + ], + "src": "45613:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46209:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46219:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46231:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46242:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46227:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46227:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46219:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46266:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46277:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46262:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46262:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46285:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46291:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46281:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46281:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46255:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46255:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46255:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46311:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46445:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46319:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46319:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46311:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46189:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46204:4:19", + "type": "" + } + ], + "src": "46038:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46634:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46644:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46656:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46667:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46652:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46652:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46644:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46691:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46702:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46687:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46687:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46710:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46716:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46706:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46706:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46680:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46680:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46680:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46736:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46870:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46744:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46744:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46736:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46614:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46629:4:19", + "type": "" + } + ], + "src": "46463:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47059:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47069:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47081:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47092:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47077:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47069:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47116:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47127:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47112:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47112:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47135:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47141:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47131:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47131:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47105:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47105:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47105:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47161:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47295:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47169:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47169:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47161:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47039:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47054:4:19", + "type": "" + } + ], + "src": "46888:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47484:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47494:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47506:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47517:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47502:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47502:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47494:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47541:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47552:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47537:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47537:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47560:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47566:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47556:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47530:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47530:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47530:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47586:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47720:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47594:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47594:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47586:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47464:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47479:4:19", + "type": "" + } + ], + "src": "47313:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47909:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47919:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47931:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47942:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47927:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47919:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47966:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47977:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47962:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47962:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47985:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47991:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47981:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47981:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47955:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47955:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47955:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48011:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48145:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48019:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48019:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48011:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47889:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47904:4:19", + "type": "" + } + ], + "src": "47738:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48334:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48344:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48356:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48367:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48352:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48344:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48391:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48402:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48387:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48387:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48410:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48416:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48406:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48406:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48380:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48380:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48380:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48436:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48570:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48444:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48444:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48436:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48314:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48329:4:19", + "type": "" + } + ], + "src": "48163:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48759:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48769:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48781:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48792:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48777:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48769:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48816:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48827:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48812:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48835:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48841:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48831:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48831:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48805:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48805:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48861:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48995:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48869:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48869:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48861:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48739:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48754:4:19", + "type": "" + } + ], + "src": "48588:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49184:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49194:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49206:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49217:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49202:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49194:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49241:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49252:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49237:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49260:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49266:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49256:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49256:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49230:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49230:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49230:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49286:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49420:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49294:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49294:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49286:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49164:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49179:4:19", + "type": "" + } + ], + "src": "49013:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49609:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49619:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49631:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49642:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49627:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49619:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49666:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49677:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49662:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49662:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49685:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49691:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49681:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49681:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49655:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49655:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49655:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49711:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49845:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49719:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49719:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49711:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49589:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49604:4:19", + "type": "" + } + ], + "src": "49438:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50034:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50044:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50056:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50067:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50052:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50044:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50091:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50102:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50087:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50087:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50110:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50116:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50106:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50106:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50080:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50080:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50080:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50136:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50270:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50144:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50144:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50136:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50014:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50029:4:19", + "type": "" + } + ], + "src": "49863:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50459:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50469:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50481:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50492:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50477:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50469:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50516:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50527:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50512:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50535:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50541:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50531:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50531:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50505:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50505:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50505:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50561:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50695:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50569:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50569:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50561:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50439:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50454:4:19", + "type": "" + } + ], + "src": "50288:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50884:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50894:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50906:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50917:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50902:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50894:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50941:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50952:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50937:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50937:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50960:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50966:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50956:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50930:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50930:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50930:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50986:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51120:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50994:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50994:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50986:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50864:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50879:4:19", + "type": "" + } + ], + "src": "50713:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51309:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51319:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51331:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51342:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51327:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51319:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51366:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51377:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51362:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51362:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51385:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51391:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51381:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51355:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51355:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51355:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51411:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51545:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51419:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51419:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51411:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51289:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51304:4:19", + "type": "" + } + ], + "src": "51138:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51734:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51744:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51756:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51767:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51752:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51752:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51744:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51791:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51802:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51787:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51787:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51810:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51816:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51806:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51806:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51780:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51780:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51780:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51836:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51970:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51844:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51844:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51836:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51714:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51729:4:19", + "type": "" + } + ], + "src": "51563:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52136:174:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52146:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52158:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52169:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52154:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52154:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52146:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "52276:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52289:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52300:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52285:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52285:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_Receipt_$4325_memory_ptr_to_t_struct$_Receipt_$4325_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52182:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "52182:121:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52182:121:19" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Receipt_$4325_memory_ptr__to_t_struct$_Receipt_$4325_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52108:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "52120:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52131:4:19", + "type": "" + } + ], + "src": "51988:322:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52414:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52424:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52436:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52447:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52432:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52432:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52424:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "52504:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52517:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52528:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52513:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52513:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "52460:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "52460:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52460:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52386:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "52398:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52409:4:19", + "type": "" + } + ], + "src": "52316:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "53132:1307:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "53142:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53154:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53165:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53150:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53150:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53142:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "53223:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53236:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53247:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53232:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53232:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "53179:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "53179:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53179:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "53312:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53325:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53336:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53321:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53321:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "53260:51:19" + }, + "nodeType": "YulFunctionCall", + "src": "53260:80:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53260:80:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53361:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53372:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53357:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53357:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53381:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53387:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53377:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53377:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53350:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53350:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53350:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "53407:116:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "53509:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53518:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53415:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "53415:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53407:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53544:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53555:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53540:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53540:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53564:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53570:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53560:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53560:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53533:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53533:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53533:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "53590:116:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "53692:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53701:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53598:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "53598:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53590:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53727:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53738:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53723:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53723:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53748:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53754:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53744:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53744:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53716:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53716:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53716:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "53774:136:19", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "53896:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53905:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53782:113:19" + }, + "nodeType": "YulFunctionCall", + "src": "53782:128:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53774:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53931:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53942:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53927:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53952:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53958:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53948:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53948:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53920:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53920:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53920:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "53978:134:19", + "value": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "54098:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54107:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53986:111:19" + }, + "nodeType": "YulFunctionCall", + "src": "53986:126:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53978:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "54166:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54179:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54190:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54175:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54175:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "54122:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "54122:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54122:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "54249:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54262:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54273:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54258:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "54205:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "54205:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54205:73:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54299:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54310:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54295:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54295:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54320:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54326:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "54316:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54316:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "54288:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "54288:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54288:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "54346:86:19", + "value": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "54418:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54427:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "54354:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "54354:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54346:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_payable_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "53040:9:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "53052:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "53060:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "53068:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "53076:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "53084:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "53092:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "53100:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "53108:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "53116:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "53127:4:19", + "type": "" + } + ], + "src": "52544:1895:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54803:928:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54813:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54825:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54836:3:19", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54821:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54821:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54813:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "54894:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54907:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54918:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54903:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54903:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "54850:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "54850:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54850:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "54975:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54988:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54999:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54984:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54984:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "54931:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "54931:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54931:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "55057:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55070:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55081:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55066:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55066:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55013:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55013:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55013:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "55139:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55152:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55163:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55148:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55095:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55095:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55095:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "55221:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55234:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55245:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55230:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55230:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55177:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55177:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55177:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "55304:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55317:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55328:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55313:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55313:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55260:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55260:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55260:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "55387:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55400:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55411:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55396:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55396:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55343:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55343:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55343:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "55464:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55477:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55488:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55473:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55473:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "55426:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "55426:67:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55426:67:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "55541:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55554:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55565:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55550:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55550:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "55503:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "55503:67:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55503:67:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55591:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55602:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55587:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55587:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55612:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55618:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55608:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55608:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55580:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55580:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55580:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "55638:86:19", + "value": { + "arguments": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "55710:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55719:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55646:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "55646:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55638:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool_t_string_memory_ptr__to_t_uint256_t_address_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54703:9:19", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "54715:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "54723:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "54731:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "54739:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "54747:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "54755:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "54763:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "54771:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "54779:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "54787:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54798:4:19", + "type": "" + } + ], + "src": "54445:1286:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "55863:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "55873:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55885:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55896:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55881:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55881:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55873:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "55953:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55966:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55977:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55962:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55962:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55909:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55909:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55909:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "56034:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56047:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56058:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56043:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56043:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "55990:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "55990:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55990:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "55827:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "55839:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "55847:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "55858:4:19", + "type": "" + } + ], + "src": "55737:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56115:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "56125:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56141:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "56135:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "56135:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "56125:6:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "56153:35:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "56175:6:19" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56183:4:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56171:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56171:17:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "56157:10:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56299:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "56301:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "56301:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56301:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "56242:10:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56254:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "56239:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "56239:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "56278:10:19" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "56290:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "56275:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "56275:22:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "56236:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "56236:62:19" + }, + "nodeType": "YulIf", + "src": "56233:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56332:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "56336:10:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "56325:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "56325:22:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56325:22:19" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "56099:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "56108:6:19", + "type": "" + } + ], + "src": "56075:278:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56441:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "56546:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "56548:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "56548:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56548:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "56518:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56526:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "56515:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "56515:30:19" + }, + "nodeType": "YulIf", + "src": "56512:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "56573:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "56585:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56593:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "56581:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56581:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56573:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "56635:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56647:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56653:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56643:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56643:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56635:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "56425:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "56436:4:19", + "type": "" + } + ], + "src": "56359:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56762:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "56867:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "56869:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "56869:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56869:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "56839:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56847:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "56836:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "56836:30:19" + }, + "nodeType": "YulIf", + "src": "56833:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "56894:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "56906:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56914:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "56902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56902:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56894:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "56956:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56968:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56974:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56964:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56964:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "56956:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "56746:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "56757:4:19", + "type": "" + } + ], + "src": "56671:315:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57084:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "57189:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "57191:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "57191:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57191:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57161:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57169:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "57158:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "57158:30:19" + }, + "nodeType": "YulIf", + "src": "57155:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "57216:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57228:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57236:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "57224:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57224:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57216:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "57278:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57290:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57296:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57286:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57286:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57278:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "57068:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "57079:4:19", + "type": "" + } + ], + "src": "56992:316:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57396:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "57501:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "57503:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "57503:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57503:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57473:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57481:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "57470:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "57470:30:19" + }, + "nodeType": "YulIf", + "src": "57467:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "57528:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57540:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57548:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "57536:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57536:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57528:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "57590:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57602:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57608:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57598:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57598:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57590:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "57380:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "57391:4:19", + "type": "" + } + ], + "src": "57314:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57692:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "57797:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "57799:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "57799:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57799:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57769:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57777:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "57766:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "57766:30:19" + }, + "nodeType": "YulIf", + "src": "57763:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "57844:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "57860:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57868:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57856:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57856:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57879:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "57875:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57875:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "57852:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57852:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57844:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "57922:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57934:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57940:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57930:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57930:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "57922:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "57676:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "57687:4:19", + "type": "" + } + ], + "src": "57626:326:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58025:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "58130:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "58132:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "58132:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58132:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "58102:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58110:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "58099:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "58099:30:19" + }, + "nodeType": "YulIf", + "src": "58096:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "58177:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "58193:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58201:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58189:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58189:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58212:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "58208:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58208:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "58185:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58185:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "58177:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "58255:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "58267:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58273:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58263:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58263:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "58255:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "58009:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "58020:4:19", + "type": "" + } + ], + "src": "57958:327:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58363:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58373:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58381:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58373:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "58394:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58406:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58411:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58402:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58394:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "58350:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "58358:4:19", + "type": "" + } + ], + "src": "58291:132:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58510:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58520:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58528:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58520:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "58541:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58553:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58558:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58549:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58549:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58541:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "58497:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "58505:4:19", + "type": "" + } + ], + "src": "58429:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58658:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58668:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58676:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58668:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "58689:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58701:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58706:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58697:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58697:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58689:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "58645:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "58653:4:19", + "type": "" + } + ], + "src": "58576:142:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58796:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58806:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58814:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58806:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "58827:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58839:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58844:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58835:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58835:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58827:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "58783:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "58791:4:19", + "type": "" + } + ], + "src": "58724:132:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58915:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58925:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58933:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58925:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58953:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "58956:3:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58946:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58946:14:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58946:14:19" + }, + { + "nodeType": "YulAssignment", + "src": "58969:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58987:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58990:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "58977:9:19" + }, + "nodeType": "YulFunctionCall", + "src": "58977:18:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "58969:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_bytes_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "58902:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "58910:4:19", + "type": "" + } + ], + "src": "58862:140:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59062:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59072:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "59080:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "59072:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59100:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "59103:3:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "59093:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "59093:14:19" + }, + "nodeType": "YulExpressionStatement", + "src": "59093:14:19" + }, + { + "nodeType": "YulAssignment", + "src": "59116:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59134:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59137:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "59124:9:19" + }, + "nodeType": "YulFunctionCall", + "src": "59124:18:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "59116:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "59049:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "59057:4:19", + "type": "" + } + ], + "src": "59008:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59229:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59240:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59256:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59250:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59250:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59240:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59212:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59222:6:19", + "type": "" + } + ], + "src": "59155:114:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59358:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59369:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59385:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59379:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59379:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59369:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59341:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59351:6:19", + "type": "" + } + ], + "src": "59275:123:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59488:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59499:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59515:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59509:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59509:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59499:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59471:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59481:6:19", + "type": "" + } + ], + "src": "59404:124:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59608:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59619:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59635:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59629:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59629:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59619:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59591:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59601:6:19", + "type": "" + } + ], + "src": "59534:114:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59712:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59723:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59739:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59733:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59733:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59723:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59695:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59705:6:19", + "type": "" + } + ], + "src": "59654:98:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59817:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59828:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "59844:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "59838:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "59838:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "59828:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "59800:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59810:6:19", + "type": "" + } + ], + "src": "59758:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59938:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59948:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "59960:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59965:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59956:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "59948:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "59925:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "59933:4:19", + "type": "" + } + ], + "src": "59863:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60066:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60076:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "60088:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60093:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60084:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60084:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "60076:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "60053:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "60061:4:19", + "type": "" + } + ], + "src": "59982:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60195:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60205:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "60217:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60222:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60213:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60213:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "60205:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "60182:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "60190:4:19", + "type": "" + } + ], + "src": "60110:123:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60314:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60324:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "60336:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60341:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60332:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60332:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "60324:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "60301:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "60309:4:19", + "type": "" + } + ], + "src": "60239:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60469:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60486:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "60491:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60479:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60479:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60479:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "60507:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60526:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60531:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60522:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60522:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "60507:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "60441:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "60446:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "60457:11:19", + "type": "" + } + ], + "src": "60358:184:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60668:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60685:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "60690:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60678:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60678:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60678:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "60706:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60725:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60730:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60721:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60721:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "60706:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "60640:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "60645:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "60656:11:19", + "type": "" + } + ], + "src": "60548:193:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60868:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60885:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "60890:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60878:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60878:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60878:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "60906:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "60925:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60930:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60921:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60921:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "60906:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "60840:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "60845:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "60856:11:19", + "type": "" + } + ], + "src": "60747:194:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61058:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61075:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "61080:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61068:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61068:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61068:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "61096:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61115:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61120:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61111:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61111:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61096:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61030:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61035:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61046:11:19", + "type": "" + } + ], + "src": "60947:184:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61222:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61239:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "61244:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61232:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61232:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61232:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "61260:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61279:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61284:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61275:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61275:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61260:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61194:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61199:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61210:11:19", + "type": "" + } + ], + "src": "61137:158:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61396:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61413:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "61418:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61406:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61406:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61406:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "61434:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61453:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61458:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61449:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61449:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61434:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61368:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61373:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61384:11:19", + "type": "" + } + ], + "src": "61301:168:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61561:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61578:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "61583:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61571:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61571:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61571:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "61599:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61618:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61623:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61614:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61614:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61599:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61533:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61538:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61549:11:19", + "type": "" + } + ], + "src": "61475:159:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61736:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61753:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "61758:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61746:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61746:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61746:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "61774:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61793:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61798:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61789:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61789:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61774:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61708:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61713:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61724:11:19", + "type": "" + } + ], + "src": "61640:169:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61929:34:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61939:18:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "61954:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "61939:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "61901:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "61906:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "61917:11:19", + "type": "" + } + ], + "src": "61815:148:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62014:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62024:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62053:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "62035:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "62035:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62024:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "61996:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62006:7:19", + "type": "" + } + ], + "src": "61969:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62113:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62123:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62148:5:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "62141:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62141:13:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "62134:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62134:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62123:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62095:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62105:7:19", + "type": "" + } + ], + "src": "62071:90:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62212:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62222:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62233:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62222:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62194:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62204:7:19", + "type": "" + } + ], + "src": "62167:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62313:84:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62323:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62334:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62323:7:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62385:5:19" + } + ], + "functionName": { + "name": "validator_assert_t_enum$_ProposalState_$4334", + "nodeType": "YulIdentifier", + "src": "62340:44:19" + }, + "nodeType": "YulFunctionCall", + "src": "62340:51:19" + }, + "nodeType": "YulExpressionStatement", + "src": "62340:51:19" + } + ] + }, + "name": "cleanup_t_enum$_ProposalState_$4334", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62295:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62305:7:19", + "type": "" + } + ], + "src": "62250:147:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62448:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62458:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62473:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62480:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "62469:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62469:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62458:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62430:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62440:7:19", + "type": "" + } + ], + "src": "62403:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62580:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62590:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62601:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62590:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62562:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62572:7:19", + "type": "" + } + ], + "src": "62535:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62661:43:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62671:27:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62686:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62693:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "62682:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62682:16:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62671:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62643:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62653:7:19", + "type": "" + } + ], + "src": "62618:86:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62754:65:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62764:49:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62779:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62786:26:19", + "type": "", + "value": "0xffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "62775:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62775:38:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62764:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62736:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "62746:7:19", + "type": "" + } + ], + "src": "62710:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62893:66:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62903:50:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "62947:5:19" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "62916:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "62916:37:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "62903:9:19" + } + ] + } + ] + }, + "name": "convert_t_address_payable_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "62873:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "62883:9:19", + "type": "" + } + ], + "src": "62825:134:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63048:89:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63058:73:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63125:5:19" + } + ], + "functionName": { + "name": "convert_t_contract$_Dclm8Interface_$5713_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "63071:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "63071:60:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63058:9:19" + } + ] + } + ] + }, + "name": "convert_t_contract$_Dclm8Interface_$5713_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63028:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63038:9:19", + "type": "" + } + ], + "src": "62965:172:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63226:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63236:37:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63267:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "63249:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "63249:24:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63236:9:19" + } + ] + } + ] + }, + "name": "convert_t_contract$_Dclm8Interface_$5713_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63206:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63216:9:19", + "type": "" + } + ], + "src": "63143:136:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63371:92:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63381:76:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63451:5:19" + } + ], + "functionName": { + "name": "convert_t_contract$_TimelockInterface_$5679_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "63394:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "63394:63:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63381:9:19" + } + ] + } + ] + }, + "name": "convert_t_contract$_TimelockInterface_$5679_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63351:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63361:9:19", + "type": "" + } + ], + "src": "63285:178:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63555:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63565:37:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63596:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "63578:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "63578:24:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63565:9:19" + } + ] + } + ] + }, + "name": "convert_t_contract$_TimelockInterface_$5679_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63535:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63545:9:19", + "type": "" + } + ], + "src": "63469:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63690:71:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63700:55:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63749:5:19" + } + ], + "functionName": { + "name": "cleanup_t_enum$_ProposalState_$4334", + "nodeType": "YulIdentifier", + "src": "63713:35:19" + }, + "nodeType": "YulFunctionCall", + "src": "63713:42:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63700:9:19" + } + ] + } + ] + }, + "name": "convert_t_enum$_ProposalState_$4334_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63670:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63680:9:19", + "type": "" + } + ], + "src": "63614:147:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63835:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63845:37:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "63876:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "63858:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "63858:24:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63845:9:19" + } + ] + } + ] + }, + "name": "convert_t_rational_0_by_1_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63815:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63825:9:19", + "type": "" + } + ], + "src": "63767:121:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63954:66:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63964:50:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "64008:5:19" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "63977:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "63977:37:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "63964:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63934:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "63944:9:19", + "type": "" + } + ], + "src": "63894:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64086:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "64096:37:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "64127:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "64109:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "64109:24:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "64096:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64066:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "64076:9:19", + "type": "" + } + ], + "src": "64026:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64204:52:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "64214:36:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "64244:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "64227:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "64227:23:19" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "64214:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint96_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64184:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "64194:9:19", + "type": "" + } + ], + "src": "64145:111:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64313:103:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "64336:3:19" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "64341:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "64346:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "64323:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "64323:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64323:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "64394:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "64399:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64390:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64390:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64408:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64383:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64383:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64383:27:19" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "64295:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "64300:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "64305:6:19", + "type": "" + } + ], + "src": "64262:154:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64471:258:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "64481:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64490:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "64485:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64550:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "64575:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64580:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64571:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64571:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "64594:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64599:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64590:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64590:11:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "64584:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "64584:18:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64564:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64564:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64564:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64511:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "64514:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "64508:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "64508:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "64522:19:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "64524:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64533:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64536:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64529:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64529:10:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64524:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "64504:3:19", + "statements": [] + }, + "src": "64500:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64647:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "64697:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "64702:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64693:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64693:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64711:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64686:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64686:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64686:27:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "64628:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "64631:6:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "64625:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "64625:13:19" + }, + "nodeType": "YulIf", + "src": "64622:2:19" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "64453:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "64458:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "64463:6:19", + "type": "" + } + ], + "src": "64422:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64782:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "64792:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "64803:5:19" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "64792:7:19" + } + ] + } + ] + }, + "name": "leftAlign_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64764:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "64774:7:19", + "type": "" + } + ], + "src": "64735:79:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64843:25:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "invalid", + "nodeType": "YulIdentifier", + "src": "64853:7:19" + }, + "nodeType": "YulFunctionCall", + "src": "64853:9:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64853:9:19" + } + ] + }, + "name": "panic_error", + "nodeType": "YulFunctionDefinition", + "src": "64820:48:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "64922:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "64932:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "64950:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64957:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64946:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64946:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64966:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "64962:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64962:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "64942:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64942:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "64932:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64905:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "64915:6:19", + "type": "" + } + ], + "src": "64874:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65043:57:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65077:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65079:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65079:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65079:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65066:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65073:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "65063:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65063:12:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65056:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65056:20:19" + }, + "nodeType": "YulIf", + "src": "65053:2:19" + } + ] + }, + "name": "validator_assert_t_enum$_ProposalState_$4334", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65036:5:19", + "type": "" + } + ], + "src": "64982:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65149:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65206:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65215:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65218:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65208:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65208:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65208:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65172:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65197:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "65179:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "65179:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65169:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65169:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65162:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65162:43:19" + }, + "nodeType": "YulIf", + "src": "65159:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65142:5:19", + "type": "" + } + ], + "src": "65106:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65274:76:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65328:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65337:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65340:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65330:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65330:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65330:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65297:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65319:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "65304:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "65304:21:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65294:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65294:32:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65287:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65287:40:19" + }, + "nodeType": "YulIf", + "src": "65284:2:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65267:5:19", + "type": "" + } + ], + "src": "65234:116:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65399:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65456:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65465:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65468:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65458:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65458:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65458:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65422:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65447:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "65429:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "65429:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65419:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65419:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65412:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65412:43:19" + }, + "nodeType": "YulIf", + "src": "65409:2:19" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65392:5:19", + "type": "" + } + ], + "src": "65356:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65527:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65584:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65593:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65596:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65586:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65586:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65550:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65575:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "65557:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "65557:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65547:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65547:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65540:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65540:43:19" + }, + "nodeType": "YulIf", + "src": "65537:2:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65520:5:19", + "type": "" + } + ], + "src": "65484:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65653:77:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65708:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65717:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65720:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65710:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65710:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65710:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65676:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65699:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "65683:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "65683:22:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65673:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65673:33:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65666:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65666:41:19" + }, + "nodeType": "YulIf", + "src": "65663:2:19" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65646:5:19", + "type": "" + } + ], + "src": "65612:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65778:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65834:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65843:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65846:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "65836:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65836:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65836:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65801:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "65825:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint96", + "nodeType": "YulIdentifier", + "src": "65808:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "65808:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "65798:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65798:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "65791:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65791:42:19" + }, + "nodeType": "YulIf", + "src": "65788:2:19" + } + ] + }, + "name": "validator_revert_t_uint96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "65771:5:19", + "type": "" + } + ], + "src": "65736:120:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := add(offset, calldataload(src))\n mstore(dst, abi_decode_t_bytes_memory_ptr(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n // string[]\n function abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := add(offset, calldataload(src))\n mstore(dst, abi_decode_t_string_memory_ptr(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\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 abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n array := allocateMemory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_memory_to_memory(src, dst, length)\n }\n\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\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_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_t_uint96(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint96(value)\n }\n\n function abi_decode_t_uint96_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint96(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_boolt_uint8t_bytes32t_bytes32t_uint96(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_uint96(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_boolt_uint96(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint96(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint96_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint96_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value0, pos)\n }\n\n function abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos)\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function abi_encode_t_address_payable_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_address_payable_to_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n // bytes[] -> bytes[]\n function abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n // string[] -> string[]\n function abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n let length := and(div(slotValue, 2), 0x7f)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let length := div(slotValue, 2)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n let dataPos := array_dataslot_t_bytes_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_t_contract$_Dclm8Interface_$5713_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Dclm8Interface_$5713_to_t_address(value))\n }\n\n function abi_encode_t_contract$_TimelockInterface_$5679_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_TimelockInterface_$5679_to_t_address(value))\n }\n\n function abi_encode_t_enum$_ProposalState_$4334_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_ProposalState_$4334_to_t_uint8(value))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n let length := and(div(slotValue, 2), 0x7f)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let length := div(slotValue, 2)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 58)\n\n mstore(add(pos, 0), \"Governor::propose: proposer vote\")\n\n mstore(add(pos, 32), \"s below proposal threshold\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 63)\n\n mstore(add(pos, 0), \"Governor::propose: proposal func\")\n\n mstore(add(pos, 32), \"tion information arity mismatch\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 69)\n\n mstore(add(pos, 0), \"Governor::__queueSetTimelockPend\")\n\n mstore(add(pos, 32), \"ingAdmin: sender must be gov gua\")\n\n mstore(add(pos, 64), \"rdian\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 68)\n\n mstore(add(pos, 0), \"Governor::_castVote: no eligible\")\n\n mstore(add(pos, 32), \" votes prior to proposal start b\")\n\n mstore(add(pos, 64), \"lock\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"Governor::propose: too many acti\")\n\n mstore(add(pos, 32), \"ons\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 49)\n\n mstore(add(pos, 0), \"Governor::cancel: cannot cancel \")\n\n mstore(add(pos, 32), \"executed proposal\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n\n mstore(add(pos, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n end := add(pos, 2)\n }\n\n function abi_encode_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"Governor::propose: must provide \")\n\n mstore(add(pos, 32), \"actions\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 84)\n\n mstore(add(pos, 0), \"Governor::propose: one live prop\")\n\n mstore(add(pos, 32), \"osal per proposer, found an alre\")\n\n mstore(add(pos, 64), \"ady pending proposal\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 71)\n\n mstore(add(pos, 0), \"Governor::__executeSetTimelockPe\")\n\n mstore(add(pos, 32), \"ndingAdmin: sender must be gov g\")\n\n mstore(add(pos, 64), \"uardian\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n\n mstore(add(pos, 0), \"setPendingAdmin(address)\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n\n mstore(add(pos, 0), \"Governor::state: invalid proposa\")\n\n mstore(add(pos, 32), \"l id\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 83)\n\n mstore(add(pos, 0), \"Governor::propose: one live prop\")\n\n mstore(add(pos, 32), \"osal per proposer, found an alre\")\n\n mstore(add(pos, 64), \"ady active proposal\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"Governor::_castVote: votes excee\")\n\n mstore(add(pos, 32), \"ds eligible amount\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n\n mstore(add(pos, 0), \"Governor::execute: proposal can \")\n\n mstore(add(pos, 32), \"only be executed if it is queued\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n\n mstore(add(pos, 0), \"addition overflow\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 49)\n\n mstore(add(pos, 0), \"Governor::__abdicate: sender mus\")\n\n mstore(add(pos, 32), \"t be gov guardian\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 63)\n\n mstore(add(pos, 0), \"Governor::_queueOrRevert: propos\")\n\n mstore(add(pos, 32), \"al action already queued at eta\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n\n mstore(add(pos, 0), \"Governor::__acceptAdmin: sender \")\n\n mstore(add(pos, 32), \"must be gov guardian\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"Governor::_castVote: voter alrea\")\n\n mstore(add(pos, 32), \"dy voted\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n\n mstore(add(pos, 0), \"Governor::cancel: proposer above\")\n\n mstore(add(pos, 32), \" threshold\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n\n mstore(add(pos, 0), \"Governor::_castVote: voting is c\")\n\n mstore(add(pos, 32), \"losed\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n\n mstore(add(pos, 0), \"subtraction underflow\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 63)\n\n mstore(add(pos, 0), \"Governor::queue: proposal can on\")\n\n mstore(add(pos, 32), \"ly be queued if it is succeeded\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n\n mstore(add(pos, 0), \"Governor::castVoteBySig: invalid\")\n\n mstore(add(pos, 32), \" signature\")\n\n end := add(pos, 64)\n }\n\n // struct Governor.Receipt -> struct Governor.Receipt\n function abi_encode_t_struct$_Receipt_$4325_memory_ptr_to_t_struct$_Receipt_$4325_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x60)\n\n {\n // hasVoted\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0x00))\n }\n\n {\n // support\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0x20))\n }\n\n {\n // votes\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_uint96_to_t_uint96(memberValue0, add(pos, 0x40))\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\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_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_t_uint96_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_uint96_to_t_uint256(value))\n }\n\n function abi_encode_t_uint96_to_t_uint96(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_t_uint96_to_t_uint96_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_payable_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_rational_0_by_1_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_bool_t_uint96__to_t_address_t_uint256_t_bool_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint96_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint96__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint96_to_t_uint96_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(value3, tail)\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_address_to_t_address_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_contract$_Dclm8Interface_$5713__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Dclm8Interface_$5713_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_contract$_TimelockInterface_$5679__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_TimelockInterface_$5679_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_enum$_ProposalState_$4334__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_ProposalState_$4334_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_struct$_Receipt_$4325_memory_ptr__to_t_struct$_Receipt_$4325_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_struct$_Receipt_$4325_memory_ptr_to_t_struct$_Receipt_$4325_memory_ptr_fromStack(value0, add(headStart, 0))\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 abi_encode_tuple_t_uint256_t_address_payable_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_payable_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value4, tail)\n\n mstore(add(headStart, 160), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(value5, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n mstore(add(headStart, 256), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value8, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool_t_string_memory_ptr__to_t_uint256_t_address_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool_t_string_memory_ptr__fromStack_reversed(headStart , value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 320)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_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 abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_bool_to_t_bool_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_bool_to_t_bool_fromStack(value8, add(headStart, 256))\n\n mstore(add(headStart, 288), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value9, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\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() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\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 array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\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 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 array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_enum$_ProposalState_$4334(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_ProposalState_$4334(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function cleanup_t_uint96(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff)\n }\n\n function convert_t_address_payable_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function convert_t_contract$_Dclm8Interface_$5713_to_t_address(value) -> converted {\n converted := convert_t_contract$_Dclm8Interface_$5713_to_t_uint160(value)\n }\n\n function convert_t_contract$_Dclm8Interface_$5713_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function convert_t_contract$_TimelockInterface_$5679_to_t_address(value) -> converted {\n converted := convert_t_contract$_TimelockInterface_$5679_to_t_uint160(value)\n }\n\n function convert_t_contract$_TimelockInterface_$5679_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function convert_t_enum$_ProposalState_$4334_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_ProposalState_$4334(value)\n }\n\n function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(value)\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function convert_t_uint96_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint96(value)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function panic_error() {\n invalid()\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_assert_t_enum$_ProposalState_$4334(value) {\n if iszero(lt(value, 8)) { panic_error() }\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint96(value) {\n if iszero(eq(value, cleanup_t_uint96(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106101b75760003560e01c8063760fbc13116100ec578063da35c6641161008a578063ddf0b00911610064578063ddf0b0091461060a578063deaaa7cc14610633578063e23a9a521461065e578063fe0d94c11461069b576101b7565b8063da35c66414610579578063da95691a146105a4578063dbfa977f146105e1576101b7565b806394a08d58116100c657806394a08d58146104e1578063b58131b01461050c578063b9a6196114610537578063d33219b41461054e576101b7565b8063760fbc13146104765780637bdbe4d01461048d57806391500671146104b8576101b7565b8063328dd9821161015957806340e58ee51161013357806340e58ee5146103bc578063452a9320146103e55780634925ec55146104105780635d2546081461044d576101b7565b8063328dd982146103145780633932abb1146103545780633e4f49e61461037f576101b7565b806317977c611161019557806317977c611461025857806320606b701461029557806321f43e42146102c057806324bc1a64146102e9576101b7565b8063013cf08b146101bc57806302a251a31461020257806306fdde031461022d575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de9190613878565b6106b7565b6040516101f99a99989796959493929190615115565b60405180910390f35b34801561020e57600080fd5b506102176107dd565b604051610224919061504a565b60405180910390f35b34801561023957600080fd5b506102426107e7565b60405161024f9190614d2d565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a9190613668565b610820565b60405161028c919061504a565b60405180910390f35b3480156102a157600080fd5b506102aa610838565b6040516102b79190614c00565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e291906136ba565b61085c565b005b3480156102f557600080fd5b506102fe6109e7565b60405161030b919061504a565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613878565b610c0e565b60405161034b9493929190614b9f565b60405180910390f35b34801561036057600080fd5b50610369610eeb565b604051610376919061504a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613878565b610ef4565b6040516103b39190614d12565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613878565b6110d7565b005b3480156103f157600080fd5b506103fa61146f565b60405161040791906149a3565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613878565b611495565b6040516104449190614d2d565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190613906565b61154d565b005b34801561048257600080fd5b5061048b611738565b005b34801561049957600080fd5b506104a261180c565b6040516104af919061504a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906136ba565b611815565b005b3480156104ed57600080fd5b506104f661199b565b6040516105039190614cdc565b60405180910390f35b34801561051857600080fd5b506105216119c1565b60405161052e919061504a565b60405180910390f35b34801561054357600080fd5b5061054c6119d3565b005b34801561055a57600080fd5b50610563611ae5565b6040516105709190614cf7565b60405180910390f35b34801561058557600080fd5b5061058e611b09565b60405161059b919061504a565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906136f6565b611b0f565b6040516105d8919061504a565b60405180910390f35b3480156105ed57600080fd5b506106086004803603810190610603919061398f565b612070565b005b34801561061657600080fd5b50610631600480360381019061062c9190613878565b612081565b005b34801561063f57600080fd5b506106486123cc565b6040516106559190614c00565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906138ca565b6123f0565b604051610692919061502f565b60405180910390f35b6106b560048036038101906106b09190613878565b6124d2565b005b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900460ff169080600b0160019054906101000a900460ff169080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505090508a565b6000614380905090565b6040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f7200000000000000000000000081525081565b60056020528060005260406000206000915090505481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390614e4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161095c91906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161098b94939291906149e7565b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109e29190613837565b505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae80d9de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190613691565b6040518263ffffffff1660e01b8152600401610ae491906149a3565b60206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3491906138a1565b9050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba157600080fd5b505afa158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd991906138a1565b03905060008114610c0057610bf7610bf282601961271b565b612765565b92505050610c0b565b649341498e01925050505b90565b60608060608060006004600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610cbc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c72575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610d0e57602002820191906000526020600020905b815481526020019060010190808311610cfa575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610df2578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b505050505081526020019060010190610d36565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ed5578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec15780601f10610e9657610100808354040283529160200191610ec1565b820191906000526020600020905b815481529060010190602001808311610ea457829003601f168201915b505050505081526020019060010190610e19565b5050505090509450945094509450509193509193565b60006001905090565b60008160035410158015610f085750600082115b610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90614e6f565b60405180910390fd5b600060046000848152602001908152602001600020905080600b0160009054906101000a900460ff1615610f7f5760029150506110d2565b80600701544311610f945760009150506110d2565b80600801544311610fa95760019150506110d2565b80600a01548160090154111580610fca5750610fc36109e7565b8160090154105b15610fd95760039150506110d2565b600081600201541415610ff05760049150506110d2565b80600b0160019054906101000a900460ff16156110115760079150506110d2565b6110bc816002015460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b791906138a1565b6127aa565b42106110cc5760069150506110d2565b60059150505b919050565b60006110e282610ef4565b90506007808111156110f057fe5b8160078111156110fc57fe5b141561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490614def565b60405180910390fd5b6000600460008481526020019081526020016000209050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129e57506111b36119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112214360016127ff565b6040518363ffffffff1660e01b815260040161123e929190614a46565b60206040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128e91906139de565b6bffffffffffffffffffffffff16105b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490614f8f565b60405180910390fd5b600181600b0160006101000a81548160ff02191690831515021790555060005b81600301805490508110156114325760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591fcdfe83600301838154811061135757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401848154811061139157fe5b90600052602060002001548560050185815481106113ab57fe5b906000526020600020018660060186815481106113c457fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016113f3959493929190614b15565b600060405180830381600087803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b5050505080806001019150506112fd565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051611462919061504a565b60405180910390a1505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060046000838152602001908152602001600020600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b50505050509050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f72000000000000000000000000815250805190602001206115b561284f565b306040516020016115c99493929190614c1b565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee888860405160200161161893929190614c60565b6040516020818303038152906040528051906020012090506000828260405160200161164592919061496c565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516116829493929190614c97565b6020604051602081039080840390855afa1580156116a4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117179061500f565b60405180910390fd5b61172c818b8b8861285c565b50505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90614f0f565b60405180910390fd5b6000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90614d8f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161191591906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161194494939291906149e7565b602060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611996919061380e565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000611b196119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe133611b634360016127ff565b6040518363ffffffff1660e01b8152600401611b809291906149be565b60206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906139de565b6bffffffffffffffffffffffff1611611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590614d4f565b60405180910390fd5b84518651148015611c30575083518651145b8015611c3d575082518651145b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390614d6f565b60405180910390fd5b600086511415611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890614e0f565b60405180910390fd5b611cc961180c565b86511115611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390614dcf565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611e1b576000611d6382610ef4565b905060016007811115611d7257fe5b816007811115611d7e57fe5b1415611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690614e8f565b60405180910390fd5b60006007811115611dcc57fe5b816007811115611dd857fe5b1415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614e2f565b60405180910390fd5b505b6000611e2e43611e29610eeb565b6127aa565b90506000611e4382611e3e6107dd565b6127aa565b9050600360008154809291906001019190505550600060046000600354815260200190815260200160002090506003548160000181905550338160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000816002018190555089816003019080519060200190611ee0929190612ed8565b5088816004019080519060200190611ef9929190612f62565b5087816005019080519060200190611f12929190612faf565b5086816006019080519060200190611f2b92919061300f565b5082816007018190555081816008018190555060008160090181905550600081600a0181905550600081600b0160006101000a81548160ff021916908315150217905550600081600b0160016101000a81548160ff0219169083151502179055508581600c019080519060200190611fa492919061306f565b508060000154600560008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000154338c8c8c8c89898e60405161205499989796959493929190615065565b60405180910390a1806000015494505050505095945050505050565b61207c3384848461285c565b505050565b6004600781111561208e57fe5b61209782610ef4565b60078111156120a257fe5b146120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d990614fef565b60405180910390fd5b600060046000838152602001908152602001600020905060006121a24260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561216557600080fd5b505afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d91906138a1565b6127aa565b905060005b8260030180549050811015612384576123778360030182815481106121c857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401838154811061220257fe5b906000526020600020015485600501848154811061221c57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122ba5780601f1061228f576101008083540402835291602001916122ba565b820191906000526020600020905b81548152906001019060200180831161229d57829003601f168201915b50505050508660060185815481106122ce57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561236c5780601f106123415761010080835404028352916020019161236c565b820191906000526020600020905b81548152906001019060200180831161234f57829003601f168201915b505050505086612ca5565b80806001019150506121a7565b508082600201819055507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516123bf9291906151b8565b60405180910390a1505050565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b6123f86130ef565b60046000848152602001908152602001600020600d0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905092915050565b600560078111156124df57fe5b6124e882610ef4565b60078111156124f357fe5b14612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614ecf565b60405180910390fd5b6000600460008381526020019081526020016000209050600181600b0160016101000a81548160ff02191690831515021790555060005b81600301805490508110156126df5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f8360040183815481106125c457fe5b90600052602060002001548460030184815481106125de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401858154811061261857fe5b906000526020600020015486600501868154811061263257fe5b9060005260206000200187600601878154811061264b57fe5b9060005260206000200188600201546040518763ffffffff1660e01b815260040161267a959493929190614b15565b6000604051808303818588803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906126d19190613837565b50808060010191505061256a565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161270f919061504a565b60405180910390a15050565b600061275d83836040518060400160405280601081526020017f6469766973696f6e206279207a65726f00000000000000000000000000000000815250612e77565b905092915050565b6000806002600184018161277557fe5b0490508291505b818110156127a45780915060028182858161279357fe5b04018161279c57fe5b04905061277c565b50919050565b6000808284019050838110156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90614eef565b60405180910390fd5b8091505092915050565b600082821115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614fcf565b60405180910390fd5b818303905092915050565b6000804690508091505090565b6001600781111561286957fe5b61287284610ef4565b600781111561287d57fe5b146128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614faf565b60405180910390fd5b6000600460008581526020019081526020016000209050600081600d0160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff16151514612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614f6f565b60405180910390fd5b6000836bffffffffffffffffffffffff16116129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990614daf565b60405180910390fd5b60008160000160029054906101000a90046bffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18986600701546040518363ffffffff1660e01b8152600401612a42929190614a46565b60206040518083038186803b158015612a5a57600080fd5b505afa158015612a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9291906139de565b039050806bffffffffffffffffffffffff16846bffffffffffffffffffffffff161115612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb90614eaf565b60405180910390fd5b6000612b0d856bffffffffffffffffffffffff16612765565b90508515612b3e57612b318460090154826bffffffffffffffffffffffff166127aa565b8460090181905550612b63565b612b5a84600a0154826bffffffffffffffffffffffff166127aa565b84600a01819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372d3ee9e89876040518363ffffffff1660e01b8152600401612bc0929190614b76565b600060405180830381600087803b158015612bda57600080fd5b505af1158015612bee573d6000803e3d6000fd5b5050505060018360000160006101000a81548160ff021916908315150217905550858360000160016101000a81548160ff021916908315150217905550808360000160026101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4688888884604051612c939493929190614a6f565b60405180910390a15050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2b065378686868686604051602001612cfa959493929190614ab4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612d2c9190614c00565b60206040518083038186803b158015612d4457600080fd5b505afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906137e5565b15612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db390614f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90186868686866040518663ffffffff1660e01b8152600401612e1d959493929190614ab4565b602060405180830381600087803b158015612e3757600080fd5b505af1158015612e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6f919061380e565b505050505050565b60008083118290612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb59190614d2d565b60405180910390fd5b506000838581612eca57fe5b049050809150509392505050565b828054828255906000526020600020908101928215612f51579160200282015b82811115612f505782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612ef8565b5b509050612f5e9190613122565b5090565b828054828255906000526020600020908101928215612f9e579160200282015b82811115612f9d578251825591602001919060010190612f82565b5b509050612fab9190613122565b5090565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffd578251829080519060200190612fed92919061306f565b5091602001919060010190612fcf565b5b50905061300b919061313f565b5090565b82805482825590600052602060002090810192821561305e579160200282015b8281111561305d57825182908051906020019061304d929190613163565b509160200191906001019061302f565b5b50905061306b91906131e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b057805160ff19168380011785556130de565b828001600101855582156130de579182015b828111156130dd5782518255916020019190600101906130c2565b5b5090506130eb9190613122565b5090565b604051806060016040528060001515815260200160001515815260200160006bffffffffffffffffffffffff1681525090565b5b8082111561313b576000816000905550600101613123565b5090565b5b8082111561315f57600081816131569190613207565b50600101613140565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131a457805160ff19168380011785556131d2565b828001600101855582156131d2579182015b828111156131d15782518255916020019190600101906131b6565b5b5090506131df9190613122565b5090565b5b8082111561320357600081816131fa919061324f565b506001016131e4565b5090565b50805460018160011615610100020316600290046000825580601f1061322d575061324c565b601f01602090049060005260206000209081019061324b9190613122565b5b50565b50805460018160011615610100020316600290046000825580601f106132755750613294565b601f0160209004906000526020600020908101906132939190613122565b5b50565b6000813590506132a681615646565b92915050565b6000815190506132bb81615646565b92915050565b600082601f8301126132d257600080fd5b81356132e56132e082615212565b6151e1565b9150818183526020840193506020810190508385602084028201111561330a57600080fd5b60005b8381101561333a57816133208882613297565b84526020840193506020830192505060018101905061330d565b5050505092915050565b600082601f83011261335557600080fd5b81356133686133638261523e565b6151e1565b9150818183526020840193506020810190508360005b838110156133ae57813586016133948882613503565b84526020840193506020830192505060018101905061337e565b5050505092915050565b600082601f8301126133c957600080fd5b81356133dc6133d78261526a565b6151e1565b9150818183526020840193506020810190508360005b83811015613422578135860161340888826135ab565b8452602084019350602083019250506001810190506133f2565b5050505092915050565b600082601f83011261343d57600080fd5b813561345061344b82615296565b6151e1565b9150818183526020840193506020810190508385602084028201111561347557600080fd5b60005b838110156134a5578161348b88826135ff565b845260208401935060208301925050600181019050613478565b5050505092915050565b6000813590506134be8161565d565b92915050565b6000815190506134d38161565d565b92915050565b6000813590506134e881615674565b92915050565b6000815190506134fd81615674565b92915050565b600082601f83011261351457600080fd5b8135613527613522826152c2565b6151e1565b9150808252602083016020830185838301111561354357600080fd5b61354e8382846155d3565b50505092915050565b600082601f83011261356857600080fd5b815161357b613576826152c2565b6151e1565b9150808252602083016020830185838301111561359757600080fd5b6135a28382846155e2565b50505092915050565b600082601f8301126135bc57600080fd5b81356135cf6135ca826152f2565b6151e1565b915080825260208301602083018583830111156135eb57600080fd5b6135f68382846155d3565b50505092915050565b60008135905061360e8161568b565b92915050565b6000815190506136238161568b565b92915050565b600081359050613638816156a2565b92915050565b60008135905061364d816156b9565b92915050565b600081519050613662816156b9565b92915050565b60006020828403121561367a57600080fd5b600061368884828501613297565b91505092915050565b6000602082840312156136a357600080fd5b60006136b1848285016132ac565b91505092915050565b600080604083850312156136cd57600080fd5b60006136db85828601613297565b92505060206136ec858286016135ff565b9150509250929050565b600080600080600060a0868803121561370e57600080fd5b600086013567ffffffffffffffff81111561372857600080fd5b613734888289016132c1565b955050602086013567ffffffffffffffff81111561375157600080fd5b61375d8882890161342c565b945050604086013567ffffffffffffffff81111561377a57600080fd5b613786888289016133b8565b935050606086013567ffffffffffffffff8111156137a357600080fd5b6137af88828901613344565b925050608086013567ffffffffffffffff8111156137cc57600080fd5b6137d8888289016135ab565b9150509295509295909350565b6000602082840312156137f757600080fd5b6000613805848285016134c4565b91505092915050565b60006020828403121561382057600080fd5b600061382e848285016134ee565b91505092915050565b60006020828403121561384957600080fd5b600082015167ffffffffffffffff81111561386357600080fd5b61386f84828501613557565b91505092915050565b60006020828403121561388a57600080fd5b6000613898848285016135ff565b91505092915050565b6000602082840312156138b357600080fd5b60006138c184828501613614565b91505092915050565b600080604083850312156138dd57600080fd5b60006138eb858286016135ff565b92505060206138fc85828601613297565b9150509250929050565b60008060008060008060c0878903121561391f57600080fd5b600061392d89828a016135ff565b965050602061393e89828a016134af565b955050604061394f89828a01613629565b945050606061396089828a016134d9565b935050608061397189828a016134d9565b92505060a061398289828a0161363e565b9150509295509295509295565b6000806000606084860312156139a457600080fd5b60006139b2868287016135ff565b93505060206139c3868287016134af565b92505060406139d48682870161363e565b9150509250925092565b6000602082840312156139f057600080fd5b60006139fe84828501613653565b91505092915050565b6000613a138383613a6e565b60208301905092915050565b6000613a2b8383613c76565b905092915050565b6000613a3f8383613db3565b905092915050565b6000613a538383614912565b60208301905092915050565b613a688161551f565b82525050565b613a7781615495565b82525050565b613a8681615495565b82525050565b6000613a978261538c565b613aa18185615402565b9350613aac83615322565b8060005b83811015613add578151613ac48882613a07565b9750613acf836153ce565b925050600181019050613ab0565b5085935050505092915050565b6000613af582615397565b613aff8185615413565b935083602082028501613b1185615332565b8060005b85811015613b4d5784840389528151613b2e8582613a1f565b9450613b39836153db565b925060208a01995050600181019050613b15565b50829750879550505050505092915050565b6000613b6a826153a2565b613b748185615424565b935083602082028501613b8685615342565b8060005b85811015613bc25784840389528151613ba38582613a33565b9450613bae836153e8565b925060208a01995050600181019050613b8a565b50829750879550505050505092915050565b6000613bdf826153ad565b613be98185615435565b9350613bf483615352565b8060005b83811015613c25578151613c0c8882613a47565b9750613c17836153f5565b925050600181019050613bf8565b5085935050505092915050565b613c3b816154a7565b82525050565b613c4a816154a7565b82525050565b613c59816154b3565b82525050565b613c70613c6b826154b3565b615615565b82525050565b6000613c81826153b8565b613c8b8185615446565b9350613c9b8185602086016155e2565b613ca481615621565b840191505092915050565b6000613cba826153b8565b613cc48185615457565b9350613cd48185602086016155e2565b613cdd81615621565b840191505092915050565b600081546001811660008114613d055760018114613d2b57613d6f565b607f6002830416613d168187615457565b955060ff198316865260208601935050613d6f565b60028204613d398187615457565b9550613d4485615362565b60005b82811015613d6657815481890152600182019150602081019050613d47565b80880195505050505b505092915050565b613d8081615531565b82525050565b613d8f81615555565b82525050565b613d9e81615579565b82525050565b613dad8161558b565b82525050565b6000613dbe826153c3565b613dc88185615468565b9350613dd88185602086016155e2565b613de181615621565b840191505092915050565b6000613df7826153c3565b613e018185615479565b9350613e118185602086016155e2565b613e1a81615621565b840191505092915050565b600081546001811660008114613e425760018114613e6857613eac565b607f6002830416613e538187615479565b955060ff198316865260208601935050613eac565b60028204613e768187615479565b9550613e8185615377565b60005b82811015613ea357815481890152600182019150602081019050613e84565b80880195505050505b505092915050565b6000613ec1603a83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560008301527f732062656c6f772070726f706f73616c207468726573686f6c640000000000006020830152604082019050919050565b6000613f27603f83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360008301527f74696f6e20696e666f726d6174696f6e206172697479206d69736d61746368006020830152604082019050919050565b6000613f8d604583615479565b91507f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460008301527f696e6741646d696e3a2073656e646572206d75737420626520676f762067756160208301527f726469616e0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614019604483615479565b91507f476f7665726e6f723a3a5f63617374566f74653a206e6f20656c696769626c6560008301527f20766f746573207072696f7220746f2070726f706f73616c207374617274206260208301527f6c6f636b000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006140a5602383615479565b91507f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e79206163746960008301527f6f6e7300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061410b603183615479565b91507f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060008301527f65786563757465642070726f706f73616c0000000000000000000000000000006020830152604082019050919050565b600061417160028361548a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006141b1602783615479565b91507f476f7665726e6f723a3a70726f706f73653a206d7573742070726f766964652060008301527f616374696f6e73000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614217605483615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f6164792070656e64696e672070726f706f73616c0000000000000000000000006040830152606082019050919050565b60006142a3604783615479565b91507f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560008301527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f76206760208301527f7561726469616e000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061432f601883615479565b91507f73657450656e64696e6741646d696e28616464726573732900000000000000006000830152602082019050919050565b600061436f602483615479565b91507f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f736160008301527f6c206964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006143d5605383615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f616479206163746976652070726f706f73616c000000000000000000000000006040830152606082019050919050565b6000614461603283615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657320657863656560008301527f647320656c696769626c6520616d6f756e7400000000000000000000000000006020830152604082019050919050565b60006144c7604083615479565b91507f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e2060008301527f6f6e6c79206265206578656375746564206966206974206973207175657565646020830152604082019050919050565b600061452d601183615479565b91507f6164646974696f6e206f766572666c6f770000000000000000000000000000006000830152602082019050919050565b600061456d603183615479565b91507f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d757360008301527f7420626520676f7620677561726469616e0000000000000000000000000000006020830152604082019050919050565b60006145d3603f83615479565b91507f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360008301527f616c20616374696f6e20616c72656164792071756575656420617420657461006020830152604082019050919050565b6000614639603483615479565b91507f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060008301527f6d75737420626520676f7620677561726469616e0000000000000000000000006020830152604082019050919050565b600061469f602883615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c72656160008301527f647920766f7465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614705602a83615479565b91507f476f7665726e6f723a3a63616e63656c3a2070726f706f7365722061626f766560008301527f207468726573686f6c64000000000000000000000000000000000000000000006020830152604082019050919050565b600061476b602583615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74696e67206973206360008301527f6c6f7365640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006147d1601583615479565b91507f7375627472616374696f6e20756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000614811603f83615479565b91507f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60008301527f6c792062652071756575656420696620697420697320737563636565646564006020830152604082019050919050565b6000614877602a83615479565b91507f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c696460008301527f207369676e6174757265000000000000000000000000000000000000000000006020830152604082019050919050565b6060820160008201516148e66000850182613c32565b5060208201516148f96020850182613c32565b50604082015161490c604085018261494e565b50505050565b61491b816154f0565b82525050565b61492a816154f0565b82525050565b614939816154fa565b82525050565b614948816155c1565b82525050565b61495781615507565b82525050565b61496681615507565b82525050565b600061497782614164565b91506149838285613c5f565b6020820191506149938284613c5f565b6020820191508190509392505050565b60006020820190506149b86000830184613a7d565b92915050565b60006040820190506149d36000830185613a5f565b6149e06020830184614921565b9392505050565b600060a0820190506149fc6000830187613a7d565b614a096020830186613da4565b8181036040830152614a1a81614322565b90508181036060830152614a2e8185613caf565b9050614a3d6080830184614921565b95945050505050565b6000604082019050614a5b6000830185613a7d565b614a686020830184614921565b9392505050565b6000608082019050614a846000830187613a7d565b614a916020830186614921565b614a9e6040830185613c41565b614aab606083018461493f565b95945050505050565b600060a082019050614ac96000830188613a7d565b614ad66020830187614921565b8181036040830152614ae88186613dec565b90508181036060830152614afc8185613caf565b9050614b0b6080830184614921565b9695505050505050565b600060a082019050614b2a6000830188613a7d565b614b376020830187614921565b8181036040830152614b498186613e25565b90508181036060830152614b5d8185613ce8565b9050614b6c6080830184614921565b9695505050505050565b6000604082019050614b8b6000830185613a7d565b614b98602083018461495d565b9392505050565b60006080820190508181036000830152614bb98187613a8c565b90508181036020830152614bcd8186613bd4565b90508181036040830152614be18185613b5f565b90508181036060830152614bf58184613aea565b905095945050505050565b6000602082019050614c156000830184613c50565b92915050565b6000608082019050614c306000830187613c50565b614c3d6020830186613c50565b614c4a6040830185614921565b614c576060830184613a7d565b95945050505050565b6000606082019050614c756000830186613c50565b614c826020830185614921565b614c8f6040830184613c41565b949350505050565b6000608082019050614cac6000830187613c50565b614cb96020830186614930565b614cc66040830185613c50565b614cd36060830184613c50565b95945050505050565b6000602082019050614cf16000830184613d77565b92915050565b6000602082019050614d0c6000830184613d86565b92915050565b6000602082019050614d276000830184613d95565b92915050565b60006020820190508181036000830152614d478184613dec565b905092915050565b60006020820190508181036000830152614d6881613eb4565b9050919050565b60006020820190508181036000830152614d8881613f1a565b9050919050565b60006020820190508181036000830152614da881613f80565b9050919050565b60006020820190508181036000830152614dc88161400c565b9050919050565b60006020820190508181036000830152614de881614098565b9050919050565b60006020820190508181036000830152614e08816140fe565b9050919050565b60006020820190508181036000830152614e28816141a4565b9050919050565b60006020820190508181036000830152614e488161420a565b9050919050565b60006020820190508181036000830152614e6881614296565b9050919050565b60006020820190508181036000830152614e8881614362565b9050919050565b60006020820190508181036000830152614ea8816143c8565b9050919050565b60006020820190508181036000830152614ec881614454565b9050919050565b60006020820190508181036000830152614ee8816144ba565b9050919050565b60006020820190508181036000830152614f0881614520565b9050919050565b60006020820190508181036000830152614f2881614560565b9050919050565b60006020820190508181036000830152614f48816145c6565b9050919050565b60006020820190508181036000830152614f688161462c565b9050919050565b60006020820190508181036000830152614f8881614692565b9050919050565b60006020820190508181036000830152614fa8816146f8565b9050919050565b60006020820190508181036000830152614fc88161475e565b9050919050565b60006020820190508181036000830152614fe8816147c4565b9050919050565b6000602082019050818103600083015261500881614804565b9050919050565b600060208201905081810360008301526150288161486a565b9050919050565b600060608201905061504460008301846148d0565b92915050565b600060208201905061505f6000830184614921565b92915050565b60006101208201905061507b600083018c614921565b615088602083018b613a5f565b818103604083015261509a818a613a8c565b905081810360608301526150ae8189613bd4565b905081810360808301526150c28188613b5f565b905081810360a08301526150d68187613aea565b90506150e560c0830186614921565b6150f260e0830185614921565b8181036101008301526151058184613dec565b90509a9950505050505050505050565b60006101408201905061512b600083018d614921565b615138602083018c613a7d565b615145604083018b614921565b615152606083018a614921565b61515f6080830189614921565b61516c60a0830188614921565b61517960c0830187614921565b61518660e0830186613c41565b615194610100830185613c41565b8181036101208301526151a78184613dec565b90509b9a5050505050505050505050565b60006040820190506151cd6000830185614921565b6151da6020830184614921565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156152085761520761561f565b5b8060405250919050565b600067ffffffffffffffff82111561522d5761522c61561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152595761525861561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152855761528461561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b1576152b061561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dd576152dc61561f565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561530d5761530c61561f565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154a0826154d0565b9050919050565b60008115159050919050565b6000819050919050565b60008190506154cb82615632565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061552a8261559d565b9050919050565b600061553c82615543565b9050919050565b600061554e826154d0565b9050919050565b600061556082615567565b9050919050565b6000615572826154d0565b9050919050565b6000615584826154bd565b9050919050565b6000615596826154f0565b9050919050565b60006155a8826155af565b9050919050565b60006155ba826154d0565b9050919050565b60006155cc82615507565b9050919050565b82818337600083830152505050565b60005b838110156156005780820151818401526020810190506155e5565b8381111561560f576000848401525b50505050565b6000819050919050565bfe5b6000601f19601f8301169050919050565b600881106156435761564261561f565b5b50565b61564f81615495565b811461565a57600080fd5b50565b615666816154a7565b811461567157600080fd5b50565b61567d816154b3565b811461568857600080fd5b50565b615694816154f0565b811461569f57600080fd5b50565b6156ab816154fa565b81146156b657600080fd5b50565b6156c281615507565b81146156cd57600080fd5b5056fea26469706673582212203bcdff51dddb7157bce315d5bf05fbc45ef9be050d0ff53a956113816b2ce1e864736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x760FBC13 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x60A JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x69B JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x5A4 JUMPI DUP1 PUSH4 0xDBFA977F EQ PUSH2 0x5E1 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x94A08D58 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x94A08D58 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x50C JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x54E JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x760FBC13 EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x91500671 EQ PUSH2 0x4B8 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x328DD982 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x40E58EE5 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0x4925EC55 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0x5D254608 EQ PUSH2 0x44D JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x328DD982 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x37F JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x17977C61 GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x21F43E42 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x2E9 JUMPI PUSH2 0x1B7 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x22D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x217 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x224 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27A SWAP2 SWAP1 PUSH2 0x3668 JUMP JUMPDEST PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AA PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B7 SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E2 SWAP2 SWAP1 PUSH2 0x36BA JUMP JUMPDEST PUSH2 0x85C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FE PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30B SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x369 PUSH2 0xEEB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x376 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A1 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x4D12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x10D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FA PUSH2 0x146F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x1495 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x444 SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x48B PUSH2 0x1738 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A2 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AF SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4DA SWAP2 SWAP1 PUSH2 0x36BA JUMP JUMPDEST PUSH2 0x1815 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F6 PUSH2 0x199B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x4CDC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x521 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x52E SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54C PUSH2 0x19D3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x1AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x570 SWAP2 SWAP1 PUSH2 0x4CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58E PUSH2 0x1B09 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59B SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0x36F6 JUMP JUMPDEST PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x608 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x603 SWAP2 SWAP1 PUSH2 0x398F JUMP JUMPDEST PUSH2 0x2070 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x631 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x62C SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x2081 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x648 PUSH2 0x23CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x655 SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x685 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x680 SWAP2 SWAP1 PUSH2 0x38CA JUMP JUMPDEST PUSH2 0x23F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x692 SWAP2 SWAP1 PUSH2 0x502F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B0 SWAP2 SWAP1 PUSH2 0x3878 JUMP JUMPDEST PUSH2 0x24D2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x7 ADD SLOAD SWAP1 DUP1 PUSH1 0x8 ADD SLOAD SWAP1 DUP1 PUSH1 0x9 ADD SLOAD SWAP1 DUP1 PUSH1 0xA ADD SLOAD SWAP1 DUP1 PUSH1 0xB ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0xB ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0xC ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7D3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7D3 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 0x7B6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP11 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4380 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20476F7665726E6F72000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E3 SWAP1 PUSH2 0x4E4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x95C SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x98B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49E7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9E2 SWAP2 SWAP1 PUSH2 0x3837 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xAE80D9DE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x3691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAE4 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB34 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC4E41B22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD9 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST SUB SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0xC00 JUMPI PUSH2 0xBF7 PUSH2 0xBF2 DUP3 PUSH1 0x19 PUSH2 0x271B JUMP JUMPDEST PUSH2 0x2765 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0xC0B JUMP JUMPDEST PUSH5 0x9341498E01 SWAP3 POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0xCBC JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xC72 JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0xD0E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xCFA JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xDF2 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xDDE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDB3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDDE 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 0xDC1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xD36 JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xED5 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xEC1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE96 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEC1 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 0xEA4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE19 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xF08 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF3E SWAP1 PUSH2 0x4E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0xB ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF7F JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0xF94 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0xFA9 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0xFCA JUMPI POP PUSH2 0xFC3 PUSH2 0x9E7 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0xFD9 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 ADD SLOAD EQ ISZERO PUSH2 0xFF0 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST DUP1 PUSH1 0xB ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1011 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0x10BC DUP2 PUSH1 0x2 ADD SLOAD PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC1A287E2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x107F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10B7 SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST TIMESTAMP LT PUSH2 0x10CC JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x10D2 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10E2 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP1 DUP2 GT ISZERO PUSH2 0x10F0 JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10FC JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x113D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1134 SWAP1 PUSH2 0x4DEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x129E JUMPI POP PUSH2 0x11B3 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1221 NUMBER PUSH1 0x1 PUSH2 0x27FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123E SWAP3 SWAP2 SWAP1 PUSH2 0x4A46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x128E SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND LT JUMPDEST PUSH2 0x12DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D4 SWAP1 PUSH2 0x4F8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x1432 JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP4 PUSH1 0x3 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1357 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1391 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x13AB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x13C4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1421 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x12FD JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0x1462 SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0xC ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x1541 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1516 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1541 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 0x1524 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8CAD95687BA82C2CE50E74F7B754645E5117C3A5BEC8151C0726D5857980A866 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436C696D6174652044414F20476F7665726E6F72000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x15B5 PUSH2 0x284F JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15C9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH32 0x8E25870C07E0B0B3884C78DA52790939A455C275406C44AE8B434B692FB916EE DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1618 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1645 SWAP3 SWAP2 SWAP1 PUSH2 0x496C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1682 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C97 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1720 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1717 SWAP1 PUSH2 0x500F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x172C DUP2 DUP12 DUP12 DUP9 PUSH2 0x285C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17BF SWAP1 PUSH2 0x4F0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x189C SWAP1 PUSH2 0x4D8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3A66F901 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1915 SWAP2 SWAP1 PUSH2 0x49A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1944 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49E7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1972 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1996 SWAP2 SWAP1 PUSH2 0x380E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH10 0x152D02C7E14AF6800000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A63 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A5A SWAP1 PUSH2 0x4F4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE18B681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B19 PUSH2 0x19C1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 CALLER PUSH2 0x1B63 NUMBER PUSH1 0x1 PUSH2 0x27FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B80 SWAP3 SWAP2 SWAP1 PUSH2 0x49BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0x1C1E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C15 SWAP1 PUSH2 0x4D4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x1C30 JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1C3D JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1C7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C73 SWAP1 PUSH2 0x4D6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 MLOAD EQ ISZERO PUSH2 0x1CC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB8 SWAP1 PUSH2 0x4E0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CC9 PUSH2 0x180C JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x1D0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D03 SWAP1 PUSH2 0x4DCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x1E1B JUMPI PUSH1 0x0 PUSH2 0x1D63 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1D72 JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1D7E JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1DBF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DB6 SWAP1 PUSH2 0x4E8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1DCC JUMPI INVALID JUMPDEST DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1DD8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E19 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E10 SWAP1 PUSH2 0x4E2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1E2E NUMBER PUSH2 0x1E29 PUSH2 0xEEB JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E43 DUP3 PUSH2 0x1E3E PUSH2 0x7DD JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x3 SLOAD DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP CALLER DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1EE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED8 JUMP JUMPDEST POP DUP9 DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1EF9 SWAP3 SWAP2 SWAP1 PUSH2 0x2F62 JUMP JUMPDEST POP DUP8 DUP2 PUSH1 0x5 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1F12 SWAP3 SWAP2 SWAP1 PUSH2 0x2FAF JUMP JUMPDEST POP DUP7 DUP2 PUSH1 0x6 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1F2B SWAP3 SWAP2 SWAP1 PUSH2 0x300F JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x7 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x8 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x9 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xA ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0xC ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1FA4 SWAP3 SWAP2 SWAP1 PUSH2 0x306F JUMP JUMPDEST POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x5 PUSH1 0x0 DUP4 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD SLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x2054 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5065 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x0 ADD SLOAD SWAP5 POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x207C CALLER DUP5 DUP5 DUP5 PUSH2 0x285C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x208E JUMPI INVALID JUMPDEST PUSH2 0x2097 DUP3 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x20A2 JUMPI INVALID JUMPDEST EQ PUSH2 0x20E2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20D9 SWAP1 PUSH2 0x4FEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH2 0x21A2 TIMESTAMP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A42B8F8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x219D SWAP2 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST PUSH2 0x27AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x2384 JUMPI PUSH2 0x2377 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x21C8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x4 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2202 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x221C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x22BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x228F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x22BA 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 0x229D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x22CE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x236C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2341 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x236C 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 0x234F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x2CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x21A7 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x23BF SWAP3 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH32 0x8E25870C07E0B0B3884C78DA52790939A455C275406C44AE8B434B692FB916EE DUP2 JUMP JUMPDEST PUSH2 0x23F8 PUSH2 0x30EF JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0xD ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x24DF JUMPI INVALID JUMPDEST PUSH2 0x24E8 DUP3 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x24F3 JUMPI INVALID JUMPDEST EQ PUSH2 0x2533 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x252A SWAP1 PUSH2 0x4ECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 PUSH1 0x3 ADD DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x26DF JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP4 PUSH1 0x4 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x25C4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x25DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x2618 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2632 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x264B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x267A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26D1 SWAP2 SWAP1 PUSH2 0x3837 JUMP JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x256A JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x270F SWAP2 SWAP1 PUSH2 0x504A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x275D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6469766973696F6E206279207A65726F00000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2E77 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1 DUP5 ADD DUP2 PUSH2 0x2775 JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP3 SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27A4 JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2793 JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x279C JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x277C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x27EC SWAP1 PUSH2 0x4EEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2844 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x283B SWAP1 PUSH2 0x4FCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CHAINID SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x2869 JUMPI INVALID JUMPDEST PUSH2 0x2872 DUP5 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x287D JUMPI INVALID JUMPDEST EQ PUSH2 0x28BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B4 SWAP1 PUSH2 0x4FAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 ISZERO ISZERO DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x2971 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2968 SWAP1 PUSH2 0x4F6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x4DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x782D6FE1 DUP10 DUP7 PUSH1 0x7 ADD SLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A42 SWAP3 SWAP2 SWAP1 PUSH2 0x4A46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A92 SWAP2 SWAP1 PUSH2 0x39DE JUMP JUMPDEST SUB SWAP1 POP DUP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x2AF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2AEB SWAP1 PUSH2 0x4EAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B0D DUP6 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2765 JUMP JUMPDEST SWAP1 POP DUP6 ISZERO PUSH2 0x2B3E JUMPI PUSH2 0x2B31 DUP5 PUSH1 0x9 ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x27AA JUMP JUMPDEST DUP5 PUSH1 0x9 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x2B63 JUMP JUMPDEST PUSH2 0x2B5A DUP5 PUSH1 0xA ADD SLOAD DUP3 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x27AA JUMP JUMPDEST DUP5 PUSH1 0xA ADD DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x72D3EE9E DUP10 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BC0 SWAP3 SWAP2 SWAP1 PUSH2 0x4B76 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BEE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 DUP4 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP4 PUSH1 0x0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 DUP9 DUP9 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2C93 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF2B06537 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2CFA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D2C SWAP2 SWAP1 PUSH2 0x4C00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D7C SWAP2 SWAP1 PUSH2 0x37E5 JUMP JUMPDEST ISZERO PUSH2 0x2DBC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DB3 SWAP1 PUSH2 0x4F2F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3A66F901 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E6F SWAP2 SWAP1 PUSH2 0x380E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 GT DUP3 SWAP1 PUSH2 0x2EBE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EB5 SWAP2 SWAP1 PUSH2 0x4D2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 DUP4 DUP6 DUP2 PUSH2 0x2ECA JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2F51 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2F50 JUMPI DUP3 MLOAD DUP3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2F5E SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2F9E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2F9D JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2F82 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2FAB SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2FFE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2FFD JUMPI DUP3 MLOAD DUP3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2FED SWAP3 SWAP2 SWAP1 PUSH2 0x306F JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2FCF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x300B SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x305E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x305D JUMPI DUP3 MLOAD DUP3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x304D SWAP3 SWAP2 SWAP1 PUSH2 0x3163 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x302F JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x306B SWAP2 SWAP1 PUSH2 0x31E3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x30B0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x30DE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x30DE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x30DD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x30C2 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x30EB SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x313B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3123 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x315F JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x3156 SWAP2 SWAP1 PUSH2 0x3207 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x3140 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x31A4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x31D2 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x31D2 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x31D1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x31B6 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x31DF SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3203 JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x31FA SWAP2 SWAP1 PUSH2 0x324F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x31E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x322D JUMPI POP PUSH2 0x324C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x324B SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3275 JUMPI POP PUSH2 0x3294 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3293 SWAP2 SWAP1 PUSH2 0x3122 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x32A6 DUP2 PUSH2 0x5646 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32BB DUP2 PUSH2 0x5646 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x32D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x32E5 PUSH2 0x32E0 DUP3 PUSH2 0x5212 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x330A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x333A JUMPI DUP2 PUSH2 0x3320 DUP9 DUP3 PUSH2 0x3297 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x330D JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3368 PUSH2 0x3363 DUP3 PUSH2 0x523E JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x33AE JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x3394 DUP9 DUP3 PUSH2 0x3503 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x337E JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x33DC PUSH2 0x33D7 DUP3 PUSH2 0x526A JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3422 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x3408 DUP9 DUP3 PUSH2 0x35AB JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x33F2 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x343D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3450 PUSH2 0x344B DUP3 PUSH2 0x5296 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x3475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34A5 JUMPI DUP2 PUSH2 0x348B DUP9 DUP3 PUSH2 0x35FF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3478 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34BE DUP2 PUSH2 0x565D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x34D3 DUP2 PUSH2 0x565D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34E8 DUP2 PUSH2 0x5674 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x34FD DUP2 PUSH2 0x5674 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3514 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3527 PUSH2 0x3522 DUP3 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x354E DUP4 DUP3 DUP5 PUSH2 0x55D3 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x357B PUSH2 0x3576 DUP3 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x3597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35A2 DUP4 DUP3 DUP5 PUSH2 0x55E2 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x35BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x35CF PUSH2 0x35CA DUP3 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x51E1 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x35EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35F6 DUP4 DUP3 DUP5 PUSH2 0x55D3 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x360E DUP2 PUSH2 0x568B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3623 DUP2 PUSH2 0x568B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3638 DUP2 PUSH2 0x56A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x364D DUP2 PUSH2 0x56B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3662 DUP2 PUSH2 0x56B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x367A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3688 DUP5 DUP3 DUP6 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x36B1 DUP5 DUP3 DUP6 ADD PUSH2 0x32AC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x36CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x36DB DUP6 DUP3 DUP7 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x36EC DUP6 DUP3 DUP7 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x370E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3734 DUP9 DUP3 DUP10 ADD PUSH2 0x32C1 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x375D DUP9 DUP3 DUP10 ADD PUSH2 0x342C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x377A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3786 DUP9 DUP3 DUP10 ADD PUSH2 0x33B8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37AF DUP9 DUP3 DUP10 ADD PUSH2 0x3344 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37D8 DUP9 DUP3 DUP10 ADD PUSH2 0x35AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3805 DUP5 DUP3 DUP6 ADD PUSH2 0x34C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x382E DUP5 DUP3 DUP6 ADD PUSH2 0x34EE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x386F DUP5 DUP3 DUP6 ADD PUSH2 0x3557 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3898 DUP5 DUP3 DUP6 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x38C1 DUP5 DUP3 DUP6 ADD PUSH2 0x3614 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x38EB DUP6 DUP3 DUP7 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x38FC DUP6 DUP3 DUP7 ADD PUSH2 0x3297 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x391F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x392D DUP10 DUP3 DUP11 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x393E DUP10 DUP3 DUP11 ADD PUSH2 0x34AF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x394F DUP10 DUP3 DUP11 ADD PUSH2 0x3629 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x3960 DUP10 DUP3 DUP11 ADD PUSH2 0x34D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x3971 DUP10 DUP3 DUP11 ADD PUSH2 0x34D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x3982 DUP10 DUP3 DUP11 ADD PUSH2 0x363E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x39B2 DUP7 DUP3 DUP8 ADD PUSH2 0x35FF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x39C3 DUP7 DUP3 DUP8 ADD PUSH2 0x34AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x39D4 DUP7 DUP3 DUP8 ADD PUSH2 0x363E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x39FE DUP5 DUP3 DUP6 ADD PUSH2 0x3653 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A13 DUP4 DUP4 PUSH2 0x3A6E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A2B DUP4 DUP4 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A3F DUP4 DUP4 PUSH2 0x3DB3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A53 DUP4 DUP4 PUSH2 0x4912 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3A68 DUP2 PUSH2 0x551F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A77 DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A86 DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A97 DUP3 PUSH2 0x538C JUMP JUMPDEST PUSH2 0x3AA1 DUP2 DUP6 PUSH2 0x5402 JUMP JUMPDEST SWAP4 POP PUSH2 0x3AAC DUP4 PUSH2 0x5322 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3ADD JUMPI DUP2 MLOAD PUSH2 0x3AC4 DUP9 DUP3 PUSH2 0x3A07 JUMP JUMPDEST SWAP8 POP PUSH2 0x3ACF DUP4 PUSH2 0x53CE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3AB0 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AF5 DUP3 PUSH2 0x5397 JUMP JUMPDEST PUSH2 0x3AFF DUP2 DUP6 PUSH2 0x5413 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3B11 DUP6 PUSH2 0x5332 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3B4D JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3B2E DUP6 DUP3 PUSH2 0x3A1F JUMP JUMPDEST SWAP5 POP PUSH2 0x3B39 DUP4 PUSH2 0x53DB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3B15 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6A DUP3 PUSH2 0x53A2 JUMP JUMPDEST PUSH2 0x3B74 DUP2 DUP6 PUSH2 0x5424 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3B86 DUP6 PUSH2 0x5342 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3BC2 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3BA3 DUP6 DUP3 PUSH2 0x3A33 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BAE DUP4 PUSH2 0x53E8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3B8A JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BDF DUP3 PUSH2 0x53AD JUMP JUMPDEST PUSH2 0x3BE9 DUP2 DUP6 PUSH2 0x5435 JUMP JUMPDEST SWAP4 POP PUSH2 0x3BF4 DUP4 PUSH2 0x5352 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C25 JUMPI DUP2 MLOAD PUSH2 0x3C0C DUP9 DUP3 PUSH2 0x3A47 JUMP JUMPDEST SWAP8 POP PUSH2 0x3C17 DUP4 PUSH2 0x53F5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3BF8 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C4A DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C59 DUP2 PUSH2 0x54B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x3C6B DUP3 PUSH2 0x54B3 JUMP JUMPDEST PUSH2 0x5615 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C81 DUP3 PUSH2 0x53B8 JUMP JUMPDEST PUSH2 0x3C8B DUP2 DUP6 PUSH2 0x5446 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C9B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3CA4 DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CBA DUP3 PUSH2 0x53B8 JUMP JUMPDEST PUSH2 0x3CC4 DUP2 DUP6 PUSH2 0x5457 JUMP JUMPDEST SWAP4 POP PUSH2 0x3CD4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3CDD DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3D05 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3D2B JUMPI PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3D16 DUP2 DUP8 PUSH2 0x5457 JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x3D6F JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3D39 DUP2 DUP8 PUSH2 0x5457 JUMP JUMPDEST SWAP6 POP PUSH2 0x3D44 DUP6 PUSH2 0x5362 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3D66 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3D47 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3D80 DUP2 PUSH2 0x5531 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3D8F DUP2 PUSH2 0x5555 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3D9E DUP2 PUSH2 0x5579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3DAD DUP2 PUSH2 0x558B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DBE DUP3 PUSH2 0x53C3 JUMP JUMPDEST PUSH2 0x3DC8 DUP2 DUP6 PUSH2 0x5468 JUMP JUMPDEST SWAP4 POP PUSH2 0x3DD8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3DE1 DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DF7 DUP3 PUSH2 0x53C3 JUMP JUMPDEST PUSH2 0x3E01 DUP2 DUP6 PUSH2 0x5479 JUMP JUMPDEST SWAP4 POP PUSH2 0x3E11 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x55E2 JUMP JUMPDEST PUSH2 0x3E1A DUP2 PUSH2 0x5621 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E68 JUMPI PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3E53 DUP2 DUP8 PUSH2 0x5479 JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x3EAC JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3E76 DUP2 DUP8 PUSH2 0x5479 JUMP JUMPDEST SWAP6 POP PUSH2 0x3E81 DUP6 PUSH2 0x5377 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3EA3 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3E84 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EC1 PUSH1 0x3A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A2070726F706F73657220766F7465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x732062656C6F772070726F706F73616C207468726573686F6C64000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F27 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A2070726F706F73616C2066756E63 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x74696F6E20696E666F726D6174696F6E206172697479206D69736D6174636800 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8D PUSH1 0x45 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F717565756553657454696D656C6F636B50656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x696E6741646D696E3A2073656E646572206D75737420626520676F7620677561 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x726469616E000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4019 PUSH1 0x44 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A206E6F20656C696769626C65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20766F746573207072696F7220746F2070726F706F73616C2073746172742062 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x6C6F636B00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A5 PUSH1 0x23 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A20746F6F206D616E792061637469 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410B PUSH1 0x31 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63616E63656C3A2063616E6E6F742063616E63656C20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65786563757465642070726F706F73616C000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4171 PUSH1 0x2 DUP4 PUSH2 0x548A JUMP JUMPDEST SWAP2 POP PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41B1 PUSH1 0x27 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206D7573742070726F7669646520 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616374696F6E7300000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4217 PUSH1 0x54 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206F6E65206C6976652070726F70 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F73616C207065722070726F706F7365722C20666F756E6420616E20616C7265 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x6164792070656E64696E672070726F706F73616C000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42A3 PUSH1 0x47 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F6578656375746553657454696D656C6F636B5065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E64696E6741646D696E3A2073656E646572206D75737420626520676F762067 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7561726469616E00000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x432F PUSH1 0x18 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x73657450656E64696E6741646D696E2861646472657373290000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x436F PUSH1 0x24 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A73746174653A20696E76616C69642070726F706F7361 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C20696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43D5 PUSH1 0x53 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A70726F706F73653A206F6E65206C6976652070726F70 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F73616C207065722070726F706F7365722C20666F756E6420616E20616C7265 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x616479206163746976652070726F706F73616C00000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4461 PUSH1 0x32 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F746573206578636565 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647320656C696769626C6520616D6F756E740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44C7 PUSH1 0x40 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A657865637574653A2070726F706F73616C2063616E20 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6E6C7920626520657865637574656420696620697420697320717565756564 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x452D PUSH1 0x11 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x6164646974696F6E206F766572666C6F77000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x456D PUSH1 0x31 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F61626469636174653A2073656E646572206D7573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7420626520676F7620677561726469616E000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45D3 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F71756575654F725265766572743A2070726F706F73 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C20616374696F6E20616C7265616479207175657565642061742065746100 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4639 PUSH1 0x34 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F5F61636365707441646D696E3A2073656E64657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D75737420626520676F7620677561726469616E000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x469F PUSH1 0x28 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F74657220616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920766F746564000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4705 PUSH1 0x2A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63616E63656C3A2070726F706F7365722061626F7665 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x207468726573686F6C6400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x476B PUSH1 0x25 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A5F63617374566F74653A20766F74696E672069732063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C6F736564000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47D1 PUSH1 0x15 DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x7375627472616374696F6E20756E646572666C6F770000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4811 PUSH1 0x3F DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A71756575653A2070726F706F73616C2063616E206F6E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C79206265207175657565642069662069742069732073756363656564656400 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4877 PUSH1 0x2A DUP4 PUSH2 0x5479 JUMP JUMPDEST SWAP2 POP PUSH32 0x476F7665726E6F723A3A63617374566F746542795369673A20696E76616C6964 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x207369676E617475726500000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x48E6 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3C32 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x48F9 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3C32 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x490C PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x494E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x491B DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x492A DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4939 DUP2 PUSH2 0x54FA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4948 DUP2 PUSH2 0x55C1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4957 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4966 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4977 DUP3 PUSH2 0x4164 JUMP JUMPDEST SWAP2 POP PUSH2 0x4983 DUP3 DUP6 PUSH2 0x3C5F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x4993 DUP3 DUP5 PUSH2 0x3C5F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x49B8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3A7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x49D3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A5F JUMP JUMPDEST PUSH2 0x49E0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x49FC PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A09 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3DA4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4A1A DUP2 PUSH2 0x4322 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4A2E DUP2 DUP6 PUSH2 0x3CAF JUMP JUMPDEST SWAP1 POP PUSH2 0x4A3D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A5B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A68 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4A84 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4A91 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4A9E PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x4AAB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x493F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x4AC9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4AD6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4AE8 DUP2 DUP7 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4AFC DUP2 DUP6 PUSH2 0x3CAF JUMP JUMPDEST SWAP1 POP PUSH2 0x4B0B PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x4B2A PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4B37 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4B49 DUP2 DUP7 PUSH2 0x3E25 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4B5D DUP2 DUP6 PUSH2 0x3CE8 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B6C PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4B8B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x4B98 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x495D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4BB9 DUP2 DUP8 PUSH2 0x3A8C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4BCD DUP2 DUP7 PUSH2 0x3BD4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4BE1 DUP2 DUP6 PUSH2 0x3B5F JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4BF5 DUP2 DUP5 PUSH2 0x3AEA JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4C15 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3C50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4C30 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4C57 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3A7D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x4C75 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4C82 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x4C8F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C41 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x4CAC PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4CB9 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x4CC6 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3C50 JUMP JUMPDEST PUSH2 0x4CD3 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3C50 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4CF1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D77 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D0C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D86 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4D27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3D95 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D47 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D68 DUP2 PUSH2 0x3EB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4D88 DUP2 PUSH2 0x3F1A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DA8 DUP2 PUSH2 0x3F80 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DC8 DUP2 PUSH2 0x400C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4DE8 DUP2 PUSH2 0x4098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E08 DUP2 PUSH2 0x40FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E28 DUP2 PUSH2 0x41A4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E48 DUP2 PUSH2 0x420A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E68 DUP2 PUSH2 0x4296 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4E88 DUP2 PUSH2 0x4362 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EA8 DUP2 PUSH2 0x43C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EC8 DUP2 PUSH2 0x4454 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4EE8 DUP2 PUSH2 0x44BA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F08 DUP2 PUSH2 0x4520 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F28 DUP2 PUSH2 0x4560 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F48 DUP2 PUSH2 0x45C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F68 DUP2 PUSH2 0x462C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4F88 DUP2 PUSH2 0x4692 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FA8 DUP2 PUSH2 0x46F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FC8 DUP2 PUSH2 0x475E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4FE8 DUP2 PUSH2 0x47C4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5008 DUP2 PUSH2 0x4804 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5028 DUP2 PUSH2 0x486A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x5044 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x505F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x507B PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5088 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x3A5F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x509A DUP2 DUP11 PUSH2 0x3A8C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x50AE DUP2 DUP10 PUSH2 0x3BD4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x50C2 DUP2 DUP9 PUSH2 0x3B5F JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x50D6 DUP2 DUP8 PUSH2 0x3AEA JUMP JUMPDEST SWAP1 POP PUSH2 0x50E5 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x50F2 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x5105 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP3 ADD SWAP1 POP PUSH2 0x512B PUSH1 0x0 DUP4 ADD DUP14 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5138 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x5145 PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5152 PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x515F PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x516C PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5179 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x5186 PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x5194 PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x3C41 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x51A7 DUP2 DUP5 PUSH2 0x3DEC JUMP JUMPDEST SWAP1 POP SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x51CD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4921 JUMP JUMPDEST PUSH2 0x51DA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4921 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5208 JUMPI PUSH2 0x5207 PUSH2 0x561F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x522D JUMPI PUSH2 0x522C PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5259 JUMPI PUSH2 0x5258 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5285 JUMPI PUSH2 0x5284 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x52B1 JUMPI PUSH2 0x52B0 PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x52DD JUMPI PUSH2 0x52DC PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x530D JUMPI PUSH2 0x530C PUSH2 0x561F JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A0 DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x54CB DUP3 PUSH2 0x5632 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x552A DUP3 PUSH2 0x559D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x553C DUP3 PUSH2 0x5543 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x554E DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5560 DUP3 PUSH2 0x5567 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5572 DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5584 DUP3 PUSH2 0x54BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5596 DUP3 PUSH2 0x54F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55A8 DUP3 PUSH2 0x55AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55BA DUP3 PUSH2 0x54D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55CC DUP3 PUSH2 0x5507 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5600 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x55E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x560F JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x5643 JUMPI PUSH2 0x5642 PUSH2 0x561F JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x564F DUP2 PUSH2 0x5495 JUMP JUMPDEST DUP2 EQ PUSH2 0x565A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5666 DUP2 PUSH2 0x54A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x5671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x567D DUP2 PUSH2 0x54B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x5688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5694 DUP2 PUSH2 0x54F0 JUMP JUMPDEST DUP2 EQ PUSH2 0x569F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x56AB DUP2 PUSH2 0x54FA JUMP JUMPDEST DUP2 EQ PUSH2 0x56B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x56C2 DUP2 PUSH2 0x5507 JUMP JUMPDEST DUP2 EQ PUSH2 0x56CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE 0xCD SELFDESTRUCT MLOAD 0xDD 0xDB PUSH18 0x57BCE315D5BF05FBC45EF9BE050D0FF53A95 PUSH2 0x1381 PUSH12 0x2CE1E864736F6C6343000703 STOP CALLER ", + "sourceMap": "1764:15378:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5758:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3127:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1830:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5862:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5982:122;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15821:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2021:502;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11546:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2983:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12132:1020;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10799:741;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3460:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11992:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13307:634;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15326:161;;;;;;;;;;;;;:::i;:::-;;2805:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15493:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3373:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2616:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15152:168;;;;;;;;;;;;;:::i;:::-;;3288:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3536:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7247:2036;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13158:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9289:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6191:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11836:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10232:561;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5758:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3127:68::-;3172:4;3187:5;3180:12;;3127:68;:::o;1830:52::-;;;;;;;;;;;;;;;;;;;:::o;5862:50::-;;;;;;;;;;;;;;;;;:::o;5982:122::-;6024:80;5982:122;:::o;15821:328::-;15937:8;;;;;;;;;;;15923:22;;:10;:22;;;15915:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;16031:8;;;;;;;;;;:27;;;16067:8;;;;;;;;;;16078:1;16120:15;16109:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16138:3;16031:111;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15821:328;;:::o;2021:502::-;2065:4;2081:25;2109:5;;;;;;;;;;;:15;;;2125:5;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2109:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2081:69;;2160:27;2215:20;2190:5;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;2160:75;;2355:1;2329:22;:27;2325:105;;2379:40;2384:34;2391:22;2415:2;2384:6;:34::i;:::-;2379:4;:40::i;:::-;2372:47;;;;;;2325:105;2504:12;2497:19;;;;2021:502;;:::o;11546:284::-;11604:24;11630:20;11652:26;11680:24;11716:18;11737:9;:21;11747:10;11737:21;;;;;;;;;;;11716:42;;11776:1;:9;;11787:1;:8;;11797:1;:12;;11811:1;:11;;11768:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11546:284;;;;;:::o;2983:63::-;3027:4;3042:1;3035:8;;2983:63;:::o;12132:1020::-;12185:13;12235:10;12218:13;;:27;;:45;;;;;12262:1;12249:10;:14;12218:45;12210:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;12314:25;12342:9;:21;12352:10;12342:21;;;;;;;;;;;12314:49;;12377:8;:17;;;;;;;;;;;;12373:773;;;12417:22;12410:29;;;;;12373:773;12476:8;:19;;;12460:12;:35;12456:690;;12518:21;12511:28;;;;;12456:690;12576:8;:17;;;12560:12;:33;12556:590;;12616:20;12609:27;;;;;12556:590;12678:8;:21;;;12657:8;:17;;;:42;;:79;;;;12723:13;:11;:13::i;:::-;12703:8;:17;;;:33;12657:79;12653:493;;;12759:22;12752:29;;;;;12653:493;12818:1;12802:8;:12;;;:17;12798:348;;;12842:23;12835:30;;;;;12798:348;12886:8;:17;;;;;;;;;;;;12882:264;;;12926:22;12919:29;;;;;12882:264;12988:45;12995:8;:12;;;13009:8;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12988:6;:45::i;:::-;12969:15;:64;12965:181;;13056:21;13049:28;;;;;12965:181;13115:20;13108:27;;;12132:1020;;;;:::o;10799:741::-;10849:26;10878:17;10884:10;10878:5;:17::i;:::-;10849:46;;10929:22;10913:38;;;;;;;;:12;:38;;;;;;;;;;10905:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;11016:25;11044:9;:21;11054:10;11044:21;;;;;;;;;;;11016:49;;11097:8;;;;;;;;;;;11083:22;;:10;:22;;;:111;;;;11175:19;:17;:19::i;:::-;11109:5;;;;;;;;;;;:19;;;11129:8;:17;;;;;;;;;;;;11148:23;11155:12;11169:1;11148:6;:23::i;:::-;11109:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:85;;;11083:111;11075:166;;;;;;;;;;;;:::i;:::-;;;;;;;;;11272:4;11252:8;:17;;;:24;;;;;;;;;;;;;;;;;;11291:6;11286:204;11307:8;:16;;:23;;;;11303:1;:27;11286:204;;;11351:8;;;;;;;;;;:26;;;11378:8;:16;;11395:1;11378:19;;;;;;;;;;;;;;;;;;;;;;;;;11399:8;:15;;11415:1;11399:18;;;;;;;;;;;;;;;;11419:8;:19;;11439:1;11419:22;;;;;;;;;;;;;;;11443:8;:18;;11462:1;11443:21;;;;;;;;;;;;;;;11466:8;:12;;;11351:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11332:3;;;;;;;11286:204;;;;11505:28;11522:10;11505:28;;;;;;:::i;:::-;;;;;;;;10799:741;;;:::o;3460:23::-;;;;;;;;;;;;;:::o;11992:134::-;12054:13;12086:9;:21;12096:10;12086:21;;;;;;;;;;;:33;;12079:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11992:134;;;:::o;13307:634::-;13423:23;6024:80;13503:4;;;;;;;;;;;;;;;;;13487:22;;;;;;13511:12;:10;:12::i;:::-;13533:4;13459:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13449:91;;;;;;13423:117;;13550:18;6233:52;13609:10;13621:7;13581:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13571:59;;;;;;13550:80;;13640:14;13696:15;13713:10;13667:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13657:68;;;;;;13640:85;;13735:17;13755:26;13765:6;13773:1;13776;13779;13755:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13735:46;;13820:1;13799:23;;:9;:23;;;;13791:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13886:48;13896:9;13907:10;13919:7;13928:5;13886:9;:48::i;:::-;13879:55;;;;13307:634;;;;;;:::o;15326:161::-;15387:8;;;;;;;;;;;15373:22;;:10;:22;;;15365:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15478:1;15459:8;;:21;;;;;;;;;;;;;;;;;;15326:161::o;2805:74::-;2859:4;2874:2;2867:9;;2805:74;:::o;15493:322::-;15607:8;;;;;;;;;;;15593:22;;:10;:22;;;15585:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;15699:8;;;;;;;;;;:25;;;15733:8;;;;;;;;;;15744:1;15786:15;15775:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;15804:3;15699:109;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15493:322;;:::o;3373:27::-;;;;;;;;;;;;;:::o;2616:77::-;2666:4;2681:9;2674:16;;2616:77;:::o;15152:168::-;15216:8;;;;;;;;;;;15202:22;;:10;:22;;;15194:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;15291:8;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15152:168::o;3288:33::-;;;;;;;;;;;;:::o;3536:25::-;;;;:::o;7247:2036::-;7409:4;7492:19;:17;:19::i;:::-;7433:5;;;;;;;;;;;:19;;;7453:10;7465:23;7472:12;7486:1;7465:6;:23::i;:::-;7433:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;7425:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;7610:6;:13;7592:7;:14;:31;:70;;;;;7645:10;:17;7627:7;:14;:35;7592:70;:108;;;;;7684:9;:16;7666:7;:14;:34;7592:108;7584:184;;;;;;;;;;;;:::i;:::-;;;;;;;;;7804:1;7786:7;:14;:19;;7778:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7885:23;:21;:23::i;:::-;7867:7;:14;:41;;7859:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;7959:21;7983:17;:29;8001:10;7983:29;;;;;;;;;;;;;;;;7959:53;;8046:1;8026:16;:21;8022:440;;8061:42;8106:23;8112:16;8106:5;:23::i;:::-;8061:68;;8181:20;8149:52;;;;;;;;:28;:52;;;;;;;;;;8141:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8341:21;8309:53;;;;;;;;:28;:53;;;;;;;;;;8301:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;8022:440;;8472:15;8490:35;8497:12;8511:13;:11;:13::i;:::-;8490:6;:35::i;:::-;8472:53;;8535:13;8551:34;8558:10;8570:14;:12;:14::i;:::-;8551:6;:34::i;:::-;8535:50;;8596:13;;:15;;;;;;;;;;;;;8622:18;8643:9;:24;8653:13;;8643:24;;;;;;;;;;;8622:45;;8684:13;;8677:1;:4;;:20;;;;8720:10;8707:1;:10;;;:23;;;;;;;;;;;;;;;;;;8748:1;8740;:5;;:9;;;;8771:7;8759:1;:9;;:19;;;;;;;;;;;;:::i;:::-;;8799:6;8788:1;:8;;:17;;;;;;;;;;;;:::i;:::-;;8830:10;8815:1;:12;;:25;;;;;;;;;;;;:::i;:::-;;8864:9;8850:1;:11;;:23;;;;;;;;;;;;:::i;:::-;;8898:10;8883:1;:12;;:25;;;;8931:8;8918:1;:10;;:21;;;;8962:1;8949;:10;;:14;;;;8990:1;8973;:14;;:18;;;;9014:5;9001:1;:10;;;:18;;;;;;;;;;;;;;;;;;9042:5;9029:1;:10;;;:18;;;;;;;;;;;;;;;;;;9073:11;9057:1;:13;;:27;;;;;;;;;;;;:::i;:::-;;9127:1;:4;;;9095:17;:29;9113:1;:10;;;;;;;;;;;;9095:29;;;;;;;;;;;;;;;:36;;;;9147:108;9163:1;:4;;;9169:10;9181:7;9190:6;9198:10;9210:9;9221:10;9233:8;9243:11;9147:108;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9272:1;:4;;;9265:11;;;;;;7247:2036;;;;;;;:::o;13158:143::-;13245:49;13255:10;13267;13279:7;13288:5;13245:9;:49::i;:::-;13158:143;;;:::o;9289:563::-;9367:23;9346:44;;;;;;;;:17;9352:10;9346:5;:17::i;:::-;:44;;;;;;;;;9338:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;9468:25;9496:9;:21;9506:10;9496:21;;;;;;;;;;;9468:49;;9527:8;9538:41;9545:15;9562:8;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9538:6;:41::i;:::-;9527:52;;9594:6;9589:183;9610:8;:16;;:23;;;;9606:1;:27;9589:183;;;9654:107;9669:8;:16;;9686:1;9669:19;;;;;;;;;;;;;;;;;;;;;;;;;9690:8;:15;;9706:1;9690:18;;;;;;;;;;;;;;;;9710:8;:19;;9730:1;9710:22;;;;;;;;;;;;;;;9654:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9734:8;:18;;9753:1;9734:21;;;;;;;;;;;;;;;9654:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:3;9654:14;:107::i;:::-;9635:3;;;;;;;9589:183;;;;9796:3;9781:8;:12;;:18;;;;9814:31;9829:10;9841:3;9814:31;;;;;;;:::i;:::-;;;;;;;;9289:563;;;:::o;6191:94::-;6233:52;6191:94;:::o;11836:150::-;11909:14;;:::i;:::-;11942:9;:21;11952:10;11942:21;;;;;;;;;;;:30;;:37;11973:5;11942:37;;;;;;;;;;;;;;;11935:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11836:150;;;;:::o;10232:561::-;10320:20;10299:41;;;;;;;;:17;10305:10;10299:5;:17::i;:::-;:41;;;;;;;;;10291:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;10419:25;10447:9;:21;10457:10;10447:21;;;;;;;;;;;10419:49;;10498:4;10478:8;:17;;;:24;;;;;;;;;;;;;;;;;;10517:6;10512:232;10533:8;:16;;:23;;;;10529:1;:27;10512:232;;;10577:8;;;;;;;;;;:27;;;10612:8;:15;;10628:1;10612:18;;;;;;;;;;;;;;;;10632:8;:16;;10649:1;10632:19;;;;;;;;;;;;;;;;;;;;;;;;;10653:8;:15;;10669:1;10653:18;;;;;;;;;;;;;;;;10673:8;:19;;10693:1;10673:22;;;;;;;;;;;;;;;10697:8;:18;;10716:1;10697:21;;;;;;;;;;;;;;;10720:8;:12;;;10577:156;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10558:3;;;;;;;10512:232;;;;10758:28;10775:10;10758:28;;;;;;:::i;:::-;;;;;;;;10232:561;;:::o;16475:124::-;16536:7;16562:30;16567:1;16570;16562:30;;;;;;;;;;;;;;;;;:4;:30::i;:::-;16555:37;;16475:124;;;;:::o;16797:191::-;16842:6;16860;16879:1;16874;16870;:5;16869:11;;;;;;16860:20;;16894:1;16890:5;;16905:77;16916:1;16912;:5;16905:77;;;16937:1;16933:5;;16970:1;16965;16961;16957;:5;;;;;;:9;16956:15;;;;;;16952:19;;16905:77;;;16797:191;;;;:::o;16155:162::-;16216:4;16232:6;16245:1;16241;:5;16232:14;;16269:1;16264;:6;;16256:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;16309:1;16302:8;;;16155:162;;;;:::o;16323:146::-;16384:4;16413:1;16408;:6;;16400:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;16461:1;16457;:5;16450:12;;16323:146;;;;:::o;16994:::-;17039:4;17055:12;17099:9;17088:20;;17126:7;17119:14;;;16994:146;:::o;13947:1199::-;14074:20;14053:41;;;;;;;;:17;14059:10;14053:5;:17::i;:::-;:41;;;;;;;;;14045:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;14146:25;14174:9;:21;14184:10;14174:21;;;;;;;;;;;14146:49;;14205:23;14231:8;:17;;:24;14249:5;14231:24;;;;;;;;;;;;;;;14205:50;;14293:5;14273:25;;:7;:16;;;;;;;;;;;;:25;;;14265:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14369:1;14361:5;:9;;;14353:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14453:20;14526:7;:13;;;;;;;;;;;;14476:5;;;;;;;;;;;:19;;;14496:5;14503:8;:19;;;14476:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;14453:86;;14566:13;14557:22;;:5;:22;;;;14549:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14645:20;14675:11;14680:5;14675:11;;:4;:11::i;:::-;14645:42;;14702:7;14698:197;;;14745:40;14752:8;:17;;;14771:13;14745:40;;:6;:40::i;:::-;14725:8;:17;;:60;;;;14698:197;;;14840:44;14847:8;:21;;;14870:13;14840:44;;:6;:44::i;:::-;14816:8;:21;;:68;;;;14698:197;14939:5;;;;;;;;;;;:11;;;14951:5;14958;14939:25;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14994:4;14975:7;:16;;;:23;;;;;;;;;;;;;;;;;;15026:7;15008;:15;;;:25;;;;;;;;;;;;;;;;;;15059:13;15043:7;:13;;;:29;;;;;;;;;;;;;;;;;;15088:51;15097:5;15104:10;15116:7;15125:13;15088:51;;;;;;;;;:::i;:::-;;;;;;;;13947:1199;;;;;;;;:::o;9858:368::-;9992:8;;;;;;;;;;:27;;;10041:6;10049:5;10056:9;10067:4;10073:3;10030:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10020:58;;;;;;9992:87;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9991:88;9983:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;10157:8;;;;;;;;;;:25;;;10183:6;10191:5;10198:9;10209:4;10215:3;10157:62;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9858:368;;;;;:::o;16605:186::-;16692:7;16723:1;16719;:5;16726:12;16711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16749:9;16765:1;16761;:5;;;;;;16749:17;;16783:1;16776:8;;;16605:186;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;7:139:19:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:761::-;;438:3;431:4;423:6;419:17;415:27;405:2;;456:1;453;446:12;405:2;496:6;483:20;521:80;536:64;593:6;536:64;:::i;:::-;521:80;:::i;:::-;512:89;;621:5;649:6;642:5;635:21;679:4;671:6;667:17;657:27;;701:4;696:3;692:14;685:21;;757:6;807:3;799:4;791:6;787:17;782:3;778:27;775:36;772:2;;;824:1;821;814:12;772:2;852:1;837:236;862:6;859:1;856:13;837:236;;;929:3;957:37;990:3;978:10;957:37;:::i;:::-;952:3;945:50;1024:4;1019:3;1015:14;1008:21;;1058:4;1053:3;1049:14;1042:21;;897:176;884:1;881;877:9;872:14;;837:236;;;841:14;395:684;;;;;;;:::o;1100:751::-;;1229:3;1222:4;1214:6;1210:17;1206:27;1196:2;;1247:1;1244;1237:12;1196:2;1287:6;1274:20;1312:89;1327:73;1393:6;1327:73;:::i;:::-;1312:89;:::i;:::-;1303:98;;1421:5;1449:6;1442:5;1435:21;1479:4;1471:6;1467:17;1457:27;;1501:4;1496:3;1492:14;1485:21;;1557:6;1588:1;1573:272;1598:6;1595:1;1592:13;1573:272;;;1690:3;1677:17;1669:6;1665:30;1720:46;1762:3;1750:10;1720:46;:::i;:::-;1715:3;1708:59;1796:4;1791:3;1787:14;1780:21;;1830:4;1825:3;1821:14;1814:21;;1633:212;1620:1;1617;1613:9;1608:14;;1573:272;;;1577:14;1186:665;;;;;;;:::o;1873:754::-;;2003:3;1996:4;1988:6;1984:17;1980:27;1970:2;;2021:1;2018;2011:12;1970:2;2061:6;2048:20;2086:90;2101:74;2168:6;2101:74;:::i;:::-;2086:90;:::i;:::-;2077:99;;2196:5;2224:6;2217:5;2210:21;2254:4;2246:6;2242:17;2232:27;;2276:4;2271:3;2267:14;2260:21;;2332:6;2363:1;2348:273;2373:6;2370:1;2367:13;2348:273;;;2465:3;2452:17;2444:6;2440:30;2495:47;2538:3;2526:10;2495:47;:::i;:::-;2490:3;2483:60;2572:4;2567:3;2563:14;2556:21;;2606:4;2601:3;2597:14;2590:21;;2408:213;2395:1;2392;2388:9;2383:14;;2348:273;;;2352:14;1960:667;;;;;;;:::o;2650:761::-;;2770:3;2763:4;2755:6;2751:17;2747:27;2737:2;;2788:1;2785;2778:12;2737:2;2828:6;2815:20;2853:80;2868:64;2925:6;2868:64;:::i;:::-;2853:80;:::i;:::-;2844:89;;2953:5;2981:6;2974:5;2967:21;3011:4;3003:6;2999:17;2989:27;;3033:4;3028:3;3024:14;3017:21;;3089:6;3139:3;3131:4;3123:6;3119:17;3114:3;3110:27;3107:36;3104:2;;;3156:1;3153;3146:12;3104:2;3184:1;3169:236;3194:6;3191:1;3188:13;3169:236;;;3261:3;3289:37;3322:3;3310:10;3289:37;:::i;:::-;3284:3;3277:50;3356:4;3351:3;3347:14;3340:21;;3390:4;3385:3;3381:14;3374:21;;3229:176;3216:1;3213;3209:9;3204:14;;3169:236;;;3173:14;2727:684;;;;;;;:::o;3417:133::-;;3498:6;3485:20;3476:29;;3514:30;3538:5;3514:30;:::i;:::-;3466:84;;;;:::o;3556:137::-;;3641:6;3635:13;3626:22;;3657:30;3681:5;3657:30;:::i;:::-;3616:77;;;;:::o;3699:139::-;;3783:6;3770:20;3761:29;;3799:33;3826:5;3799:33;:::i;:::-;3751:87;;;;:::o;3844:143::-;;3932:6;3926:13;3917:22;;3948:33;3975:5;3948:33;:::i;:::-;3907:80;;;;:::o;3993:464::-;;4097:3;4090:4;4082:6;4078:17;4074:27;4064:2;;4115:1;4112;4105:12;4064:2;4155:6;4142:20;4180:64;4195:48;4236:6;4195:48;:::i;:::-;4180:64;:::i;:::-;4171:73;;4267:6;4260:5;4253:21;4306:4;4298:6;4294:17;4342:4;4335:5;4331:16;4380:3;4371:6;4366:3;4362:16;4359:25;4356:2;;;4397:1;4394;4387:12;4356:2;4410:41;4444:6;4439:3;4434;4410:41;:::i;:::-;4054:403;;;;;;;:::o;4463:466::-;;4578:3;4571:4;4563:6;4559:17;4555:27;4545:2;;4596:1;4593;4586:12;4545:2;4629:6;4623:13;4654:64;4669:48;4710:6;4669:48;:::i;:::-;4654:64;:::i;:::-;4645:73;;4741:6;4734:5;4727:21;4780:4;4772:6;4768:17;4816:4;4809:5;4805:16;4854:3;4845:6;4840:3;4836:16;4833:25;4830:2;;;4871:1;4868;4861:12;4830:2;4884:39;4916:6;4911:3;4906;4884:39;:::i;:::-;4535:394;;;;;;;:::o;4935:466::-;;5040:3;5033:4;5025:6;5021:17;5017:27;5007:2;;5058:1;5055;5048:12;5007:2;5098:6;5085:20;5123:65;5138:49;5180:6;5138:49;:::i;:::-;5123:65;:::i;:::-;5114:74;;5211:6;5204:5;5197:21;5250:4;5242:6;5238:17;5286:4;5279:5;5275:16;5324:3;5315:6;5310:3;5306:16;5303:25;5300:2;;;5341:1;5338;5331:12;5300:2;5354:41;5388:6;5383:3;5378;5354:41;:::i;:::-;4997:404;;;;;;;:::o;5407:139::-;;5491:6;5478:20;5469:29;;5507:33;5534:5;5507:33;:::i;:::-;5459:87;;;;:::o;5552:143::-;;5640:6;5634:13;5625:22;;5656:33;5683:5;5656:33;:::i;:::-;5615:80;;;;:::o;5701:135::-;;5783:6;5770:20;5761:29;;5799:31;5824:5;5799:31;:::i;:::-;5751:85;;;;:::o;5842:137::-;;5925:6;5912:20;5903:29;;5941:32;5967:5;5941:32;:::i;:::-;5893:86;;;;:::o;5985:141::-;;6072:6;6066:13;6057:22;;6088:32;6114:5;6088:32;:::i;:::-;6047:79;;;;:::o;6132:260::-;;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6256:1;6253;6246:12;6208:2;6298:1;6322:53;6367:7;6358:6;6347:9;6343:22;6322:53;:::i;:::-;6312:63;;6270:115;6198:194;;;;:::o;6398:282::-;;6517:2;6505:9;6496:7;6492:23;6488:32;6485:2;;;6533:1;6530;6523:12;6485:2;6575:1;6599:64;6655:7;6646:6;6635:9;6631:22;6599:64;:::i;:::-;6589:74;;6547:126;6475:205;;;;:::o;6686:403::-;;;6811:2;6799:9;6790:7;6786:23;6782:32;6779:2;;;6827:1;6824;6817:12;6779:2;6869:1;6893:53;6938:7;6929:6;6918:9;6914:22;6893:53;:::i;:::-;6883:63;;6841:115;6994:2;7019:53;7064:7;7055:6;7044:9;7040:22;7019:53;:::i;:::-;7009:63;;6966:116;6769:320;;;;;:::o;7095:1557::-;;;;;;7400:3;7388:9;7379:7;7375:23;7371:33;7368:2;;;7417:1;7414;7407:12;7368:2;7487:1;7476:9;7472:17;7459:31;7517:18;7509:6;7506:30;7503:2;;;7549:1;7546;7539:12;7503:2;7576:78;7646:7;7637:6;7626:9;7622:22;7576:78;:::i;:::-;7566:88;;7431:233;7730:2;7719:9;7715:18;7702:32;7761:18;7753:6;7750:30;7747:2;;;7793:1;7790;7783:12;7747:2;7820:78;7890:7;7881:6;7870:9;7866:22;7820:78;:::i;:::-;7810:88;;7674:234;7974:2;7963:9;7959:18;7946:32;8005:18;7997:6;7994:30;7991:2;;;8037:1;8034;8027:12;7991:2;8064:88;8144:7;8135:6;8124:9;8120:22;8064:88;:::i;:::-;8054:98;;7918:244;8228:2;8217:9;8213:18;8200:32;8259:18;8251:6;8248:30;8245:2;;;8291:1;8288;8281:12;8245:2;8318:87;8397:7;8388:6;8377:9;8373:22;8318:87;:::i;:::-;8308:97;;8172:243;8481:3;8470:9;8466:19;8453:33;8513:18;8505:6;8502:30;8499:2;;;8545:1;8542;8535:12;8499:2;8572:63;8627:7;8618:6;8607:9;8603:22;8572:63;:::i;:::-;8562:73;;8425:220;7358:1294;;;;;;;;:::o;8658:276::-;;8774:2;8762:9;8753:7;8749:23;8745:32;8742:2;;;8790:1;8787;8780:12;8742:2;8832:1;8856:61;8909:7;8900:6;8889:9;8885:22;8856:61;:::i;:::-;8846:71;;8804:123;8732:202;;;;:::o;8940:282::-;;9059:2;9047:9;9038:7;9034:23;9030:32;9027:2;;;9075:1;9072;9065:12;9027:2;9117:1;9141:64;9197:7;9188:6;9177:9;9173:22;9141:64;:::i;:::-;9131:74;;9089:126;9017:205;;;;:::o;9228:386::-;;9356:2;9344:9;9335:7;9331:23;9327:32;9324:2;;;9372:1;9369;9362:12;9324:2;9435:1;9424:9;9420:17;9414:24;9465:18;9457:6;9454:30;9451:2;;;9497:1;9494;9487:12;9451:2;9524:73;9589:7;9580:6;9569:9;9565:22;9524:73;:::i;:::-;9514:83;;9386:221;9314:300;;;;:::o;9620:260::-;;9728:2;9716:9;9707:7;9703:23;9699:32;9696:2;;;9744:1;9741;9734:12;9696:2;9786:1;9810:53;9855:7;9846:6;9835:9;9831:22;9810:53;:::i;:::-;9800:63;;9758:115;9686:194;;;;:::o;9886:282::-;;10005:2;9993:9;9984:7;9980:23;9976:32;9973:2;;;10021:1;10018;10011:12;9973:2;10063:1;10087:64;10143:7;10134:6;10123:9;10119:22;10087:64;:::i;:::-;10077:74;;10035:126;9963:205;;;;:::o;10174:403::-;;;10299:2;10287:9;10278:7;10274:23;10270:32;10267:2;;;10315:1;10312;10305:12;10267:2;10357:1;10381:53;10426:7;10417:6;10406:9;10402:22;10381:53;:::i;:::-;10371:63;;10329:115;10482:2;10507:53;10552:7;10543:6;10532:9;10528:22;10507:53;:::i;:::-;10497:63;;10454:116;10257:320;;;;;:::o;10583:966::-;;;;;;;10770:3;10758:9;10749:7;10745:23;10741:33;10738:2;;;10787:1;10784;10777:12;10738:2;10829:1;10853:53;10898:7;10889:6;10878:9;10874:22;10853:53;:::i;:::-;10843:63;;10801:115;10954:2;10979:50;11021:7;11012:6;11001:9;10997:22;10979:50;:::i;:::-;10969:60;;10926:113;11077:2;11102:51;11145:7;11136:6;11125:9;11121:22;11102:51;:::i;:::-;11092:61;;11049:114;11201:2;11226:53;11271:7;11262:6;11251:9;11247:22;11226:53;:::i;:::-;11216:63;;11173:116;11327:3;11353:53;11398:7;11389:6;11378:9;11374:22;11353:53;:::i;:::-;11343:63;;11299:117;11454:3;11480:52;11524:7;11515:6;11504:9;11500:22;11480:52;:::i;:::-;11470:62;;11426:116;10728:821;;;;;;;;:::o;11555:538::-;;;;11693:2;11681:9;11672:7;11668:23;11664:32;11661:2;;;11709:1;11706;11699:12;11661:2;11751:1;11775:53;11820:7;11811:6;11800:9;11796:22;11775:53;:::i;:::-;11765:63;;11723:115;11876:2;11901:50;11943:7;11934:6;11923:9;11919:22;11901:50;:::i;:::-;11891:60;;11848:113;11999:2;12024:52;12068:7;12059:6;12048:9;12044:22;12024:52;:::i;:::-;12014:62;;11971:115;11651:442;;;;;:::o;12099:280::-;;12217:2;12205:9;12196:7;12192:23;12188:32;12185:2;;;12233:1;12230;12223:12;12185:2;12275:1;12299:63;12354:7;12345:6;12334:9;12330:22;12299:63;:::i;:::-;12289:73;;12247:125;12175:204;;;;:::o;12385:179::-;;12475:46;12517:3;12509:6;12475:46;:::i;:::-;12553:4;12548:3;12544:14;12530:28;;12465:99;;;;:::o;12570:192::-;;12692:64;12752:3;12744:6;12692:64;:::i;:::-;12678:78;;12668:94;;;;:::o;12768:196::-;;12892:66;12954:3;12946:6;12892:66;:::i;:::-;12878:80;;12868:96;;;;:::o;12970:179::-;;13060:46;13102:3;13094:6;13060:46;:::i;:::-;13138:4;13133:3;13129:14;13115:28;;13050:99;;;;:::o;13155:147::-;13250:45;13289:5;13250:45;:::i;:::-;13245:3;13238:58;13228:74;;:::o;13308:108::-;13385:24;13403:5;13385:24;:::i;:::-;13380:3;13373:37;13363:53;;:::o;13422:118::-;13509:24;13527:5;13509:24;:::i;:::-;13504:3;13497:37;13487:53;;:::o;13576:732::-;;13724:54;13772:5;13724:54;:::i;:::-;13794:86;13873:6;13868:3;13794:86;:::i;:::-;13787:93;;13904:56;13954:5;13904:56;:::i;:::-;13983:7;14014:1;13999:284;14024:6;14021:1;14018:13;13999:284;;;14100:6;14094:13;14127:63;14186:3;14171:13;14127:63;:::i;:::-;14120:70;;14213:60;14266:6;14213:60;:::i;:::-;14203:70;;14059:224;14046:1;14043;14039:9;14034:14;;13999:284;;;14003:14;14299:3;14292:10;;13700:608;;;;;;;:::o;14340:983::-;;14506:63;14563:5;14506:63;:::i;:::-;14585:95;14673:6;14668:3;14585:95;:::i;:::-;14578:102;;14706:3;14751:4;14743:6;14739:17;14734:3;14730:27;14781:65;14840:5;14781:65;:::i;:::-;14869:7;14900:1;14885:393;14910:6;14907:1;14904:13;14885:393;;;14981:9;14975:4;14971:20;14966:3;14959:33;15032:6;15026:13;15060:82;15137:4;15122:13;15060:82;:::i;:::-;15052:90;;15165:69;15227:6;15165:69;:::i;:::-;15155:79;;15263:4;15258:3;15254:14;15247:21;;14945:333;14932:1;14929;14925:9;14920:14;;14885:393;;;14889:14;15294:4;15287:11;;15314:3;15307:10;;14482:841;;;;;;;;;:::o;15357:991::-;;15525:64;15583:5;15525:64;:::i;:::-;15605:96;15694:6;15689:3;15605:96;:::i;:::-;15598:103;;15727:3;15772:4;15764:6;15760:17;15755:3;15751:27;15802:66;15862:5;15802:66;:::i;:::-;15891:7;15922:1;15907:396;15932:6;15929:1;15926:13;15907:396;;;16003:9;15997:4;15993:20;15988:3;15981:33;16054:6;16048:13;16082:84;16161:4;16146:13;16082:84;:::i;:::-;16074:92;;16189:70;16252:6;16189:70;:::i;:::-;16179:80;;16288:4;16283:3;16279:14;16272:21;;15967:336;15954:1;15951;15947:9;15942:14;;15907:396;;;15911:14;16319:4;16312:11;;16339:3;16332:10;;15501:847;;;;;;;;;:::o;16384:732::-;;16532:54;16580:5;16532:54;:::i;:::-;16602:86;16681:6;16676:3;16602:86;:::i;:::-;16595:93;;16712:56;16762:5;16712:56;:::i;:::-;16791:7;16822:1;16807:284;16832:6;16829:1;16826:13;16807:284;;;16908:6;16902:13;16935:63;16994:3;16979:13;16935:63;:::i;:::-;16928:70;;17021:60;17074:6;17021:60;:::i;:::-;17011:70;;16867:224;16854:1;16851;16847:9;16842:14;;16807:284;;;16811:14;17107:3;17100:10;;16508:608;;;;;;;:::o;17122:99::-;17193:21;17208:5;17193:21;:::i;:::-;17188:3;17181:34;17171:50;;:::o;17227:109::-;17308:21;17323:5;17308:21;:::i;:::-;17303:3;17296:34;17286:50;;:::o;17342:118::-;17429:24;17447:5;17429:24;:::i;:::-;17424:3;17417:37;17407:53;;:::o;17466:157::-;17571:45;17591:24;17609:5;17591:24;:::i;:::-;17571:45;:::i;:::-;17566:3;17559:58;17549:74;;:::o;17629:340::-;;17733:38;17765:5;17733:38;:::i;:::-;17787:60;17840:6;17835:3;17787:60;:::i;:::-;17780:67;;17856:52;17901:6;17896:3;17889:4;17882:5;17878:16;17856:52;:::i;:::-;17933:29;17955:6;17933:29;:::i;:::-;17928:3;17924:39;17917:46;;17709:260;;;;;:::o;17975:360::-;;18089:38;18121:5;18089:38;:::i;:::-;18143:70;18206:6;18201:3;18143:70;:::i;:::-;18136:77;;18222:52;18267:6;18262:3;18255:4;18248:5;18244:16;18222:52;:::i;:::-;18299:29;18321:6;18299:29;:::i;:::-;18294:3;18290:39;18283:46;;18065:270;;;;;:::o;18363:932::-;;18483:5;18477:12;18520:1;18509:9;18505:17;18536:1;18531:280;;;;18825:1;18820:469;;;;18498:791;;18531:280;18621:4;18617:1;18606:9;18602:17;18598:28;18646:70;18709:6;18704:3;18646:70;:::i;:::-;18639:77;;18760:4;18756:9;18745;18741:25;18736:3;18729:38;18796:4;18791:3;18787:14;18780:21;;18538:273;18531:280;;18820:469;18901:1;18890:9;18886:17;18923:70;18986:6;18981:3;18923:70;:::i;:::-;18916:77;;19021:37;19052:5;19021:37;:::i;:::-;19080:1;19094:154;19108:6;19105:1;19102:13;19094:154;;;19182:7;19176:14;19172:1;19167:3;19163:11;19156:35;19232:1;19223:7;19219:15;19208:26;;19130:4;19127:1;19123:12;19118:17;;19094:154;;;19277:1;19272:3;19268:11;19261:18;;18827:462;;;18498:791;;18450:845;;;;;:::o;19301:177::-;19411:60;19465:5;19411:60;:::i;:::-;19406:3;19399:73;19389:89;;:::o;19484:183::-;19597:63;19654:5;19597:63;:::i;:::-;19592:3;19585:76;19575:92;;:::o;19673:163::-;19776:53;19823:5;19776:53;:::i;:::-;19771:3;19764:66;19754:82;;:::o;19842:147::-;19937:45;19976:5;19937:45;:::i;:::-;19932:3;19925:58;19915:74;;:::o;19995:344::-;;20101:39;20134:5;20101:39;:::i;:::-;20156:61;20210:6;20205:3;20156:61;:::i;:::-;20149:68;;20226:52;20271:6;20266:3;20259:4;20252:5;20248:16;20226:52;:::i;:::-;20303:29;20325:6;20303:29;:::i;:::-;20298:3;20294:39;20287:46;;20077:262;;;;;:::o;20345:364::-;;20461:39;20494:5;20461:39;:::i;:::-;20516:71;20580:6;20575:3;20516:71;:::i;:::-;20509:78;;20596:52;20641:6;20636:3;20629:4;20622:5;20618:16;20596:52;:::i;:::-;20673:29;20695:6;20673:29;:::i;:::-;20668:3;20664:39;20657:46;;20437:272;;;;;:::o;20739:937::-;;20861:5;20855:12;20898:1;20887:9;20883:17;20914:1;20909:281;;;;21204:1;21199:471;;;;20876:794;;20909:281;20999:4;20995:1;20984:9;20980:17;20976:28;21024:71;21088:6;21083:3;21024:71;:::i;:::-;21017:78;;21139:4;21135:9;21124;21120:25;21115:3;21108:38;21175:4;21170:3;21166:14;21159:21;;20916:274;20909:281;;21199:471;21280:1;21269:9;21265:17;21302:71;21366:6;21361:3;21302:71;:::i;:::-;21295:78;;21401:38;21433:5;21401:38;:::i;:::-;21461:1;21475:154;21489:6;21486:1;21483:13;21475:154;;;21563:7;21557:14;21553:1;21548:3;21544:11;21537:35;21613:1;21604:7;21600:15;21589:26;;21511:4;21508:1;21504:12;21499:17;;21475:154;;;21658:1;21653:3;21649:11;21642:18;;21206:464;;;20876:794;;20828:848;;;;;:::o;21682:390::-;;21845:67;21909:2;21904:3;21845:67;:::i;:::-;21838:74;;21942:34;21938:1;21933:3;21929:11;21922:55;22008:28;22003:2;21998:3;21994:12;21987:50;22063:2;22058:3;22054:12;22047:19;;21828:244;;;:::o;22078:395::-;;22241:67;22305:2;22300:3;22241:67;:::i;:::-;22234:74;;22338:34;22334:1;22329:3;22325:11;22318:55;22404:33;22399:2;22394:3;22390:12;22383:55;22464:2;22459:3;22455:12;22448:19;;22224:249;;;:::o;22479:435::-;;22642:67;22706:2;22701:3;22642:67;:::i;:::-;22635:74;;22739:34;22735:1;22730:3;22726:11;22719:55;22805:34;22800:2;22795:3;22791:12;22784:56;22871:7;22866:2;22861:3;22857:12;22850:29;22905:2;22900:3;22896:12;22889:19;;22625:289;;;:::o;22920:434::-;;23083:67;23147:2;23142:3;23083:67;:::i;:::-;23076:74;;23180:34;23176:1;23171:3;23167:11;23160:55;23246:34;23241:2;23236:3;23232:12;23225:56;23312:6;23307:2;23302:3;23298:12;23291:28;23345:2;23340:3;23336:12;23329:19;;23066:288;;;:::o;23360:367::-;;23523:67;23587:2;23582:3;23523:67;:::i;:::-;23516:74;;23620:34;23616:1;23611:3;23607:11;23600:55;23686:5;23681:2;23676:3;23672:12;23665:27;23718:2;23713:3;23709:12;23702:19;;23506:221;;;:::o;23733:381::-;;23896:67;23960:2;23955:3;23896:67;:::i;:::-;23889:74;;23993:34;23989:1;23984:3;23980:11;23973:55;24059:19;24054:2;24049:3;24045:12;24038:41;24105:2;24100:3;24096:12;24089:19;;23879:235;;;:::o;24120:396::-;;24301:84;24383:1;24378:3;24301:84;:::i;:::-;24294:91;;24415:66;24411:1;24406:3;24402:11;24395:87;24508:1;24503:3;24499:11;24492:18;;24284:232;;;:::o;24522:371::-;;24685:67;24749:2;24744:3;24685:67;:::i;:::-;24678:74;;24782:34;24778:1;24773:3;24769:11;24762:55;24848:9;24843:2;24838:3;24834:12;24827:31;24884:2;24879:3;24875:12;24868:19;;24668:225;;;:::o;24899:450::-;;25062:67;25126:2;25121:3;25062:67;:::i;:::-;25055:74;;25159:34;25155:1;25150:3;25146:11;25139:55;25225:34;25220:2;25215:3;25211:12;25204:56;25291:22;25286:2;25281:3;25277:12;25270:44;25340:2;25335:3;25331:12;25324:19;;25045:304;;;:::o;25355:437::-;;25518:67;25582:2;25577:3;25518:67;:::i;:::-;25511:74;;25615:34;25611:1;25606:3;25602:11;25595:55;25681:34;25676:2;25671:3;25667:12;25660:56;25747:9;25742:2;25737:3;25733:12;25726:31;25783:2;25778:3;25774:12;25767:19;;25501:291;;;:::o;25798:322::-;;25961:67;26025:2;26020:3;25961:67;:::i;:::-;25954:74;;26058:26;26054:1;26049:3;26045:11;26038:47;26111:2;26106:3;26102:12;26095:19;;25944:176;;;:::o;26126:368::-;;26289:67;26353:2;26348:3;26289:67;:::i;:::-;26282:74;;26386:34;26382:1;26377:3;26373:11;26366:55;26452:6;26447:2;26442:3;26438:12;26431:28;26485:2;26480:3;26476:12;26469:19;;26272:222;;;:::o;26500:449::-;;26663:67;26727:2;26722:3;26663:67;:::i;:::-;26656:74;;26760:34;26756:1;26751:3;26747:11;26740:55;26826:34;26821:2;26816:3;26812:12;26805:56;26892:21;26887:2;26882:3;26878:12;26871:43;26940:2;26935:3;26931:12;26924:19;;26646:303;;;:::o;26955:382::-;;27118:67;27182:2;27177:3;27118:67;:::i;:::-;27111:74;;27215:34;27211:1;27206:3;27202:11;27195:55;27281:20;27276:2;27271:3;27267:12;27260:42;27328:2;27323:3;27319:12;27312:19;;27101:236;;;:::o;27343:396::-;;27506:67;27570:2;27565:3;27506:67;:::i;:::-;27499:74;;27603:34;27599:1;27594:3;27590:11;27583:55;27669:34;27664:2;27659:3;27655:12;27648:56;27730:2;27725:3;27721:12;27714:19;;27489:250;;;:::o;27745:315::-;;27908:67;27972:2;27967:3;27908:67;:::i;:::-;27901:74;;28005:19;28001:1;27996:3;27992:11;27985:40;28051:2;28046:3;28042:12;28035:19;;27891:169;;;:::o;28066:381::-;;28229:67;28293:2;28288:3;28229:67;:::i;:::-;28222:74;;28326:34;28322:1;28317:3;28313:11;28306:55;28392:19;28387:2;28382:3;28378:12;28371:41;28438:2;28433:3;28429:12;28422:19;;28212:235;;;:::o;28453:395::-;;28616:67;28680:2;28675:3;28616:67;:::i;:::-;28609:74;;28713:34;28709:1;28704:3;28700:11;28693:55;28779:33;28774:2;28769:3;28765:12;28758:55;28839:2;28834:3;28830:12;28823:19;;28599:249;;;:::o;28854:384::-;;29017:67;29081:2;29076:3;29017:67;:::i;:::-;29010:74;;29114:34;29110:1;29105:3;29101:11;29094:55;29180:22;29175:2;29170:3;29166:12;29159:44;29229:2;29224:3;29220:12;29213:19;;29000:238;;;:::o;29244:372::-;;29407:67;29471:2;29466:3;29407:67;:::i;:::-;29400:74;;29504:34;29500:1;29495:3;29491:11;29484:55;29570:10;29565:2;29560:3;29556:12;29549:32;29607:2;29602:3;29598:12;29591:19;;29390:226;;;:::o;29622:374::-;;29785:67;29849:2;29844:3;29785:67;:::i;:::-;29778:74;;29882:34;29878:1;29873:3;29869:11;29862:55;29948:12;29943:2;29938:3;29934:12;29927:34;29987:2;29982:3;29978:12;29971:19;;29768:228;;;:::o;30002:369::-;;30165:67;30229:2;30224:3;30165:67;:::i;:::-;30158:74;;30262:34;30258:1;30253:3;30249:11;30242:55;30328:7;30323:2;30318:3;30314:12;30307:29;30362:2;30357:3;30353:12;30346:19;;30148:223;;;:::o;30377:319::-;;30540:67;30604:2;30599:3;30540:67;:::i;:::-;30533:74;;30637:23;30633:1;30628:3;30624:11;30617:44;30687:2;30682:3;30678:12;30671:19;;30523:173;;;:::o;30702:395::-;;30865:67;30929:2;30924:3;30865:67;:::i;:::-;30858:74;;30962:34;30958:1;30953:3;30949:11;30942:55;31028:33;31023:2;31018:3;31014:12;31007:55;31088:2;31083:3;31079:12;31072:19;;30848:249;;;:::o;31103:374::-;;31266:67;31330:2;31325:3;31266:67;:::i;:::-;31259:74;;31363:34;31359:1;31354:3;31350:11;31343:55;31429:12;31424:2;31419:3;31415:12;31408:34;31468:2;31463:3;31459:12;31452:19;;31249:228;;;:::o;31541:675::-;31688:4;31683:3;31679:14;31779:4;31772:5;31768:16;31762:23;31798:57;31849:4;31844:3;31840:14;31826:12;31798:57;:::i;:::-;31703:162;31950:4;31943:5;31939:16;31933:23;31969:57;32020:4;32015:3;32011:14;31997:12;31969:57;:::i;:::-;31875:161;32119:4;32112:5;32108:16;32102:23;32138:61;32193:4;32188:3;32184:14;32170:12;32138:61;:::i;:::-;32046:163;31657:559;;;:::o;32222:108::-;32299:24;32317:5;32299:24;:::i;:::-;32294:3;32287:37;32277:53;;:::o;32336:118::-;32423:24;32441:5;32423:24;:::i;:::-;32418:3;32411:37;32401:53;;:::o;32460:112::-;32543:22;32559:5;32543:22;:::i;:::-;32538:3;32531:35;32521:51;;:::o;32578:129::-;32664:36;32694:5;32664:36;:::i;:::-;32659:3;32652:49;32642:65;;:::o;32713:105::-;32788:23;32805:5;32788:23;:::i;:::-;32783:3;32776:36;32766:52;;:::o;32824:115::-;32909:23;32926:5;32909:23;:::i;:::-;32904:3;32897:36;32887:52;;:::o;32945:663::-;;33208:148;33352:3;33208:148;:::i;:::-;33201:155;;33366:75;33437:3;33428:6;33366:75;:::i;:::-;33466:2;33461:3;33457:12;33450:19;;33479:75;33550:3;33541:6;33479:75;:::i;:::-;33579:2;33574:3;33570:12;33563:19;;33599:3;33592:10;;33190:418;;;;;:::o;33614:222::-;;33745:2;33734:9;33730:18;33722:26;;33758:71;33826:1;33815:9;33811:17;33802:6;33758:71;:::i;:::-;33712:124;;;;:::o;33842:348::-;;34009:2;33998:9;33994:18;33986:26;;34022:79;34098:1;34087:9;34083:17;34074:6;34022:79;:::i;:::-;34111:72;34179:2;34168:9;34164:18;34155:6;34111:72;:::i;:::-;33976:214;;;;;:::o;34196:964::-;;34538:3;34527:9;34523:19;34515:27;;34552:71;34620:1;34609:9;34605:17;34596:6;34552:71;:::i;:::-;34633:80;34709:2;34698:9;34694:18;34685:6;34633:80;:::i;:::-;34760:9;34754:4;34750:20;34745:2;34734:9;34730:18;34723:48;34788:131;34914:4;34788:131;:::i;:::-;34780:139;;34966:9;34960:4;34956:20;34951:2;34940:9;34936:18;34929:48;34994:76;35065:4;35056:6;34994:76;:::i;:::-;34986:84;;35080:73;35148:3;35137:9;35133:19;35124:6;35080:73;:::i;:::-;34505:655;;;;;;;:::o;35166:332::-;;35325:2;35314:9;35310:18;35302:26;;35338:71;35406:1;35395:9;35391:17;35382:6;35338:71;:::i;:::-;35419:72;35487:2;35476:9;35472:18;35463:6;35419:72;:::i;:::-;35292:206;;;;;:::o;35504:539::-;;35712:3;35701:9;35697:19;35689:27;;35726:71;35794:1;35783:9;35779:17;35770:6;35726:71;:::i;:::-;35807:72;35875:2;35864:9;35860:18;35851:6;35807:72;:::i;:::-;35889:66;35951:2;35940:9;35936:18;35927:6;35889:66;:::i;:::-;35965:71;36032:2;36021:9;36017:18;36008:6;35965:71;:::i;:::-;35679:364;;;;;;;:::o;36049:842::-;;36330:3;36319:9;36315:19;36307:27;;36344:71;36412:1;36401:9;36397:17;36388:6;36344:71;:::i;:::-;36425:72;36493:2;36482:9;36478:18;36469:6;36425:72;:::i;:::-;36544:9;36538:4;36534:20;36529:2;36518:9;36514:18;36507:48;36572:78;36645:4;36636:6;36572:78;:::i;:::-;36564:86;;36697:9;36691:4;36687:20;36682:2;36671:9;36667:18;36660:48;36725:76;36796:4;36787:6;36725:76;:::i;:::-;36717:84;;36811:73;36879:3;36868:9;36864:19;36855:6;36811:73;:::i;:::-;36297:594;;;;;;;;:::o;36897:830::-;;37172:3;37161:9;37157:19;37149:27;;37186:71;37254:1;37243:9;37239:17;37230:6;37186:71;:::i;:::-;37267:72;37335:2;37324:9;37320:18;37311:6;37267:72;:::i;:::-;37386:9;37380:4;37376:20;37371:2;37360:9;37356:18;37349:48;37414:75;37484:4;37475:6;37414:75;:::i;:::-;37406:83;;37536:9;37530:4;37526:20;37521:2;37510:9;37506:18;37499:48;37564:73;37632:4;37623:6;37564:73;:::i;:::-;37556:81;;37647:73;37715:3;37704:9;37700:19;37691:6;37647:73;:::i;:::-;37139:588;;;;;;;;:::o;37733:328::-;;37890:2;37879:9;37875:18;37867:26;;37903:71;37971:1;37960:9;37956:17;37947:6;37903:71;:::i;:::-;37984:70;38050:2;38039:9;38035:18;38026:6;37984:70;:::i;:::-;37857:204;;;;;:::o;38067:1233::-;;38520:3;38509:9;38505:19;38497:27;;38570:9;38564:4;38560:20;38556:1;38545:9;38541:17;38534:47;38598:108;38701:4;38692:6;38598:108;:::i;:::-;38590:116;;38753:9;38747:4;38743:20;38738:2;38727:9;38723:18;38716:48;38781:108;38884:4;38875:6;38781:108;:::i;:::-;38773:116;;38936:9;38930:4;38926:20;38921:2;38910:9;38906:18;38899:48;38964:128;39087:4;39078:6;38964:128;:::i;:::-;38956:136;;39139:9;39133:4;39129:20;39124:2;39113:9;39109:18;39102:48;39167:126;39288:4;39279:6;39167:126;:::i;:::-;39159:134;;38487:813;;;;;;;:::o;39306:222::-;;39437:2;39426:9;39422:18;39414:26;;39450:71;39518:1;39507:9;39503:17;39494:6;39450:71;:::i;:::-;39404:124;;;;:::o;39534:553::-;;39749:3;39738:9;39734:19;39726:27;;39763:71;39831:1;39820:9;39816:17;39807:6;39763:71;:::i;:::-;39844:72;39912:2;39901:9;39897:18;39888:6;39844:72;:::i;:::-;39926;39994:2;39983:9;39979:18;39970:6;39926:72;:::i;:::-;40008;40076:2;40065:9;40061:18;40052:6;40008:72;:::i;:::-;39716:371;;;;;;;:::o;40093:430::-;;40274:2;40263:9;40259:18;40251:26;;40287:71;40355:1;40344:9;40340:17;40331:6;40287:71;:::i;:::-;40368:72;40436:2;40425:9;40421:18;40412:6;40368:72;:::i;:::-;40450:66;40512:2;40501:9;40497:18;40488:6;40450:66;:::i;:::-;40241:282;;;;;;:::o;40529:545::-;;40740:3;40729:9;40725:19;40717:27;;40754:71;40822:1;40811:9;40807:17;40798:6;40754:71;:::i;:::-;40835:68;40899:2;40888:9;40884:18;40875:6;40835:68;:::i;:::-;40913:72;40981:2;40970:9;40966:18;40957:6;40913:72;:::i;:::-;40995;41063:2;41052:9;41048:18;41039:6;40995:72;:::i;:::-;40707:367;;;;;;;:::o;41080:268::-;;41234:2;41223:9;41219:18;41211:26;;41247:94;41338:1;41327:9;41323:17;41314:6;41247:94;:::i;:::-;41201:147;;;;:::o;41354:274::-;;41511:2;41500:9;41496:18;41488:26;;41524:97;41618:1;41607:9;41603:17;41594:6;41524:97;:::i;:::-;41478:150;;;;:::o;41634:254::-;;41781:2;41770:9;41766:18;41758:26;;41794:87;41878:1;41867:9;41863:17;41854:6;41794:87;:::i;:::-;41748:140;;;;:::o;41894:313::-;;42045:2;42034:9;42030:18;42022:26;;42094:9;42088:4;42084:20;42080:1;42069:9;42065:17;42058:47;42122:78;42195:4;42186:6;42122:78;:::i;:::-;42114:86;;42012:195;;;;:::o;42213:419::-;;42417:2;42406:9;42402:18;42394:26;;42466:9;42460:4;42456:20;42452:1;42441:9;42437:17;42430:47;42494:131;42620:4;42494:131;:::i;:::-;42486:139;;42384:248;;;:::o;42638:419::-;;42842:2;42831:9;42827:18;42819:26;;42891:9;42885:4;42881:20;42877:1;42866:9;42862:17;42855:47;42919:131;43045:4;42919:131;:::i;:::-;42911:139;;42809:248;;;:::o;43063:419::-;;43267:2;43256:9;43252:18;43244:26;;43316:9;43310:4;43306:20;43302:1;43291:9;43287:17;43280:47;43344:131;43470:4;43344:131;:::i;:::-;43336:139;;43234:248;;;:::o;43488:419::-;;43692:2;43681:9;43677:18;43669:26;;43741:9;43735:4;43731:20;43727:1;43716:9;43712:17;43705:47;43769:131;43895:4;43769:131;:::i;:::-;43761:139;;43659:248;;;:::o;43913:419::-;;44117:2;44106:9;44102:18;44094:26;;44166:9;44160:4;44156:20;44152:1;44141:9;44137:17;44130:47;44194:131;44320:4;44194:131;:::i;:::-;44186:139;;44084:248;;;:::o;44338:419::-;;44542:2;44531:9;44527:18;44519:26;;44591:9;44585:4;44581:20;44577:1;44566:9;44562:17;44555:47;44619:131;44745:4;44619:131;:::i;:::-;44611:139;;44509:248;;;:::o;44763:419::-;;44967:2;44956:9;44952:18;44944:26;;45016:9;45010:4;45006:20;45002:1;44991:9;44987:17;44980:47;45044:131;45170:4;45044:131;:::i;:::-;45036:139;;44934:248;;;:::o;45188:419::-;;45392:2;45381:9;45377:18;45369:26;;45441:9;45435:4;45431:20;45427:1;45416:9;45412:17;45405:47;45469:131;45595:4;45469:131;:::i;:::-;45461:139;;45359:248;;;:::o;45613:419::-;;45817:2;45806:9;45802:18;45794:26;;45866:9;45860:4;45856:20;45852:1;45841:9;45837:17;45830:47;45894:131;46020:4;45894:131;:::i;:::-;45886:139;;45784:248;;;:::o;46038:419::-;;46242:2;46231:9;46227:18;46219:26;;46291:9;46285:4;46281:20;46277:1;46266:9;46262:17;46255:47;46319:131;46445:4;46319:131;:::i;:::-;46311:139;;46209:248;;;:::o;46463:419::-;;46667:2;46656:9;46652:18;46644:26;;46716:9;46710:4;46706:20;46702:1;46691:9;46687:17;46680:47;46744:131;46870:4;46744:131;:::i;:::-;46736:139;;46634:248;;;:::o;46888:419::-;;47092:2;47081:9;47077:18;47069:26;;47141:9;47135:4;47131:20;47127:1;47116:9;47112:17;47105:47;47169:131;47295:4;47169:131;:::i;:::-;47161:139;;47059:248;;;:::o;47313:419::-;;47517:2;47506:9;47502:18;47494:26;;47566:9;47560:4;47556:20;47552:1;47541:9;47537:17;47530:47;47594:131;47720:4;47594:131;:::i;:::-;47586:139;;47484:248;;;:::o;47738:419::-;;47942:2;47931:9;47927:18;47919:26;;47991:9;47985:4;47981:20;47977:1;47966:9;47962:17;47955:47;48019:131;48145:4;48019:131;:::i;:::-;48011:139;;47909:248;;;:::o;48163:419::-;;48367:2;48356:9;48352:18;48344:26;;48416:9;48410:4;48406:20;48402:1;48391:9;48387:17;48380:47;48444:131;48570:4;48444:131;:::i;:::-;48436:139;;48334:248;;;:::o;48588:419::-;;48792:2;48781:9;48777:18;48769:26;;48841:9;48835:4;48831:20;48827:1;48816:9;48812:17;48805:47;48869:131;48995:4;48869:131;:::i;:::-;48861:139;;48759:248;;;:::o;49013:419::-;;49217:2;49206:9;49202:18;49194:26;;49266:9;49260:4;49256:20;49252:1;49241:9;49237:17;49230:47;49294:131;49420:4;49294:131;:::i;:::-;49286:139;;49184:248;;;:::o;49438:419::-;;49642:2;49631:9;49627:18;49619:26;;49691:9;49685:4;49681:20;49677:1;49666:9;49662:17;49655:47;49719:131;49845:4;49719:131;:::i;:::-;49711:139;;49609:248;;;:::o;49863:419::-;;50067:2;50056:9;50052:18;50044:26;;50116:9;50110:4;50106:20;50102:1;50091:9;50087:17;50080:47;50144:131;50270:4;50144:131;:::i;:::-;50136:139;;50034:248;;;:::o;50288:419::-;;50492:2;50481:9;50477:18;50469:26;;50541:9;50535:4;50531:20;50527:1;50516:9;50512:17;50505:47;50569:131;50695:4;50569:131;:::i;:::-;50561:139;;50459:248;;;:::o;50713:419::-;;50917:2;50906:9;50902:18;50894:26;;50966:9;50960:4;50956:20;50952:1;50941:9;50937:17;50930:47;50994:131;51120:4;50994:131;:::i;:::-;50986:139;;50884:248;;;:::o;51138:419::-;;51342:2;51331:9;51327:18;51319:26;;51391:9;51385:4;51381:20;51377:1;51366:9;51362:17;51355:47;51419:131;51545:4;51419:131;:::i;:::-;51411:139;;51309:248;;;:::o;51563:419::-;;51767:2;51756:9;51752:18;51744:26;;51816:9;51810:4;51806:20;51802:1;51791:9;51787:17;51780:47;51844:131;51970:4;51844:131;:::i;:::-;51836:139;;51734:248;;;:::o;51988:322::-;;52169:2;52158:9;52154:18;52146:26;;52182:121;52300:1;52289:9;52285:17;52276:6;52182:121;:::i;:::-;52136:174;;;;:::o;52316:222::-;;52447:2;52436:9;52432:18;52424:26;;52460:71;52528:1;52517:9;52513:17;52504:6;52460:71;:::i;:::-;52414:124;;;;:::o;52544:1895::-;;53165:3;53154:9;53150:19;53142:27;;53179:71;53247:1;53236:9;53232:17;53223:6;53179:71;:::i;:::-;53260:80;53336:2;53325:9;53321:18;53312:6;53260:80;:::i;:::-;53387:9;53381:4;53377:20;53372:2;53361:9;53357:18;53350:48;53415:108;53518:4;53509:6;53415:108;:::i;:::-;53407:116;;53570:9;53564:4;53560:20;53555:2;53544:9;53540:18;53533:48;53598:108;53701:4;53692:6;53598:108;:::i;:::-;53590:116;;53754:9;53748:4;53744:20;53738:3;53727:9;53723:19;53716:49;53782:128;53905:4;53896:6;53782:128;:::i;:::-;53774:136;;53958:9;53952:4;53948:20;53942:3;53931:9;53927:19;53920:49;53986:126;54107:4;54098:6;53986:126;:::i;:::-;53978:134;;54122:73;54190:3;54179:9;54175:19;54166:6;54122:73;:::i;:::-;54205;54273:3;54262:9;54258:19;54249:6;54205:73;:::i;:::-;54326:9;54320:4;54316:20;54310:3;54299:9;54295:19;54288:49;54354:78;54427:4;54418:6;54354:78;:::i;:::-;54346:86;;53132:1307;;;;;;;;;;;;:::o;54445:1286::-;;54836:3;54825:9;54821:19;54813:27;;54850:71;54918:1;54907:9;54903:17;54894:6;54850:71;:::i;:::-;54931:72;54999:2;54988:9;54984:18;54975:6;54931:72;:::i;:::-;55013;55081:2;55070:9;55066:18;55057:6;55013:72;:::i;:::-;55095;55163:2;55152:9;55148:18;55139:6;55095:72;:::i;:::-;55177:73;55245:3;55234:9;55230:19;55221:6;55177:73;:::i;:::-;55260;55328:3;55317:9;55313:19;55304:6;55260:73;:::i;:::-;55343;55411:3;55400:9;55396:19;55387:6;55343:73;:::i;:::-;55426:67;55488:3;55477:9;55473:19;55464:6;55426:67;:::i;:::-;55503;55565:3;55554:9;55550:19;55541:6;55503:67;:::i;:::-;55618:9;55612:4;55608:20;55602:3;55591:9;55587:19;55580:49;55646:78;55719:4;55710:6;55646:78;:::i;:::-;55638:86;;54803:928;;;;;;;;;;;;;:::o;55737:332::-;;55896:2;55885:9;55881:18;55873:26;;55909:71;55977:1;55966:9;55962:17;55953:6;55909:71;:::i;:::-;55990:72;56058:2;56047:9;56043:18;56034:6;55990:72;:::i;:::-;55863:206;;;;;:::o;56075:278::-;;56141:2;56135:9;56125:19;;56183:4;56175:6;56171:17;56290:6;56278:10;56275:22;56254:18;56242:10;56239:34;56236:62;56233:2;;;56301:13;;:::i;:::-;56233:2;56336:10;56332:2;56325:22;56115:238;;;;:::o;56359:306::-;;56526:18;56518:6;56515:30;56512:2;;;56548:13;;:::i;:::-;56512:2;56593:4;56585:6;56581:17;56573:25;;56653:4;56647;56643:15;56635:23;;56441:224;;;:::o;56671:315::-;;56847:18;56839:6;56836:30;56833:2;;;56869:13;;:::i;:::-;56833:2;56914:4;56906:6;56902:17;56894:25;;56974:4;56968;56964:15;56956:23;;56762:224;;;:::o;56992:316::-;;57169:18;57161:6;57158:30;57155:2;;;57191:13;;:::i;:::-;57155:2;57236:4;57228:6;57224:17;57216:25;;57296:4;57290;57286:15;57278:23;;57084:224;;;:::o;57314:306::-;;57481:18;57473:6;57470:30;57467:2;;;57503:13;;:::i;:::-;57467:2;57548:4;57540:6;57536:17;57528:25;;57608:4;57602;57598:15;57590:23;;57396:224;;;:::o;57626:326::-;;57777:18;57769:6;57766:30;57763:2;;;57799:13;;:::i;:::-;57763:2;57879:4;57875:9;57868:4;57860:6;57856:17;57852:33;57844:41;;57940:4;57934;57930:15;57922:23;;57692:260;;;:::o;57958:327::-;;58110:18;58102:6;58099:30;58096:2;;;58132:13;;:::i;:::-;58096:2;58212:4;58208:9;58201:4;58193:6;58189:17;58185:33;58177:41;;58273:4;58267;58263:15;58255:23;;58025:260;;;:::o;58291:132::-;;58381:3;58373:11;;58411:4;58406:3;58402:14;58394:22;;58363:60;;;:::o;58429:141::-;;58528:3;58520:11;;58558:4;58553:3;58549:14;58541:22;;58510:60;;;:::o;58576:142::-;;58676:3;58668:11;;58706:4;58701:3;58697:14;58689:22;;58658:60;;;:::o;58724:132::-;;58814:3;58806:11;;58844:4;58839:3;58835:14;58827:22;;58796:60;;;:::o;58862:140::-;;58933:3;58925:11;;58956:3;58953:1;58946:14;58990:4;58987:1;58977:18;58969:26;;58915:87;;;:::o;59008:141::-;;59080:3;59072:11;;59103:3;59100:1;59093:14;59137:4;59134:1;59124:18;59116:26;;59062:87;;;:::o;59155:114::-;;59256:5;59250:12;59240:22;;59229:40;;;:::o;59275:123::-;;59385:5;59379:12;59369:22;;59358:40;;;:::o;59404:124::-;;59515:5;59509:12;59499:22;;59488:40;;;:::o;59534:114::-;;59635:5;59629:12;59619:22;;59608:40;;;:::o;59654:98::-;;59739:5;59733:12;59723:22;;59712:40;;;:::o;59758:99::-;;59844:5;59838:12;59828:22;;59817:40;;;:::o;59863:113::-;;59965:4;59960:3;59956:14;59948:22;;59938:38;;;:::o;59982:122::-;;60093:4;60088:3;60084:14;60076:22;;60066:38;;;:::o;60110:123::-;;60222:4;60217:3;60213:14;60205:22;;60195:38;;;:::o;60239:113::-;;60341:4;60336:3;60332:14;60324:22;;60314:38;;;:::o;60358:184::-;;60491:6;60486:3;60479:19;60531:4;60526:3;60522:14;60507:29;;60469:73;;;;:::o;60548:193::-;;60690:6;60685:3;60678:19;60730:4;60725:3;60721:14;60706:29;;60668:73;;;;:::o;60747:194::-;;60890:6;60885:3;60878:19;60930:4;60925:3;60921:14;60906:29;;60868:73;;;;:::o;60947:184::-;;61080:6;61075:3;61068:19;61120:4;61115:3;61111:14;61096:29;;61058:73;;;;:::o;61137:158::-;;61244:6;61239:3;61232:19;61284:4;61279:3;61275:14;61260:29;;61222:73;;;;:::o;61301:168::-;;61418:6;61413:3;61406:19;61458:4;61453:3;61449:14;61434:29;;61396:73;;;;:::o;61475:159::-;;61583:6;61578:3;61571:19;61623:4;61618:3;61614:14;61599:29;;61561:73;;;;:::o;61640:169::-;;61758:6;61753:3;61746:19;61798:4;61793:3;61789:14;61774:29;;61736:73;;;;:::o;61815:148::-;;61954:3;61939:18;;61929:34;;;;:::o;61969:96::-;;62035:24;62053:5;62035:24;:::i;:::-;62024:35;;62014:51;;;:::o;62071:90::-;;62148:5;62141:13;62134:21;62123:32;;62113:48;;;:::o;62167:77::-;;62233:5;62222:16;;62212:32;;;:::o;62250:147::-;;62334:5;62323:16;;62340:51;62385:5;62340:51;:::i;:::-;62313:84;;;:::o;62403:126::-;;62480:42;62473:5;62469:54;62458:65;;62448:81;;;:::o;62535:77::-;;62601:5;62590:16;;62580:32;;;:::o;62618:86::-;;62693:4;62686:5;62682:16;62671:27;;62661:43;;;:::o;62710:109::-;;62786:26;62779:5;62775:38;62764:49;;62754:65;;;:::o;62825:134::-;;62916:37;62947:5;62916:37;:::i;:::-;62903:50;;62893:66;;;:::o;62965:172::-;;63071:60;63125:5;63071:60;:::i;:::-;63058:73;;63048:89;;;:::o;63143:136::-;;63249:24;63267:5;63249:24;:::i;:::-;63236:37;;63226:53;;;:::o;63285:178::-;;63394:63;63451:5;63394:63;:::i;:::-;63381:76;;63371:92;;;:::o;63469:139::-;;63578:24;63596:5;63578:24;:::i;:::-;63565:37;;63555:53;;;:::o;63614:147::-;;63713:42;63749:5;63713:42;:::i;:::-;63700:55;;63690:71;;;:::o;63767:121::-;;63858:24;63876:5;63858:24;:::i;:::-;63845:37;;63835:53;;;:::o;63894:126::-;;63977:37;64008:5;63977:37;:::i;:::-;63964:50;;63954:66;;;:::o;64026:113::-;;64109:24;64127:5;64109:24;:::i;:::-;64096:37;;64086:53;;;:::o;64145:111::-;;64227:23;64244:5;64227:23;:::i;:::-;64214:36;;64204:52;;;:::o;64262:154::-;64346:6;64341:3;64336;64323:30;64408:1;64399:6;64394:3;64390:16;64383:27;64313:103;;;:::o;64422:307::-;64490:1;64500:113;64514:6;64511:1;64508:13;64500:113;;;64599:1;64594:3;64590:11;64584:18;64580:1;64575:3;64571:11;64564:39;64536:2;64533:1;64529:10;64524:15;;64500:113;;;64631:6;64628:1;64625:13;64622:2;;;64711:1;64702:6;64697:3;64693:16;64686:27;64622:2;64471:258;;;;:::o;64735:79::-;;64803:5;64792:16;;64782:32;;;:::o;64820:48::-;64853:9;64874:102;;64966:2;64962:7;64957:2;64950:5;64946:14;64942:28;64932:38;;64922:54;;;:::o;64982:118::-;65073:1;65066:5;65063:12;65053:2;;65079:13;;:::i;:::-;65053:2;65043:57;:::o;65106:122::-;65179:24;65197:5;65179:24;:::i;:::-;65172:5;65169:35;65159:2;;65218:1;65215;65208:12;65159:2;65149:79;:::o;65234:116::-;65304:21;65319:5;65304:21;:::i;:::-;65297:5;65294:32;65284:2;;65340:1;65337;65330:12;65284:2;65274:76;:::o;65356:122::-;65429:24;65447:5;65429:24;:::i;:::-;65422:5;65419:35;65409:2;;65468:1;65465;65458:12;65409:2;65399:79;:::o;65484:122::-;65557:24;65575:5;65557:24;:::i;:::-;65550:5;65547:35;65537:2;;65596:1;65593;65586:12;65537:2;65527:79;:::o;65612:118::-;65683:22;65699:5;65683:22;:::i;:::-;65676:5;65673:33;65663:2;;65720:1;65717;65710:12;65663:2;65653:77;:::o;65736:120::-;65808:23;65825:5;65808:23;:::i;:::-;65801:5;65798:34;65788:2;;65846:1;65843;65836:12;65788:2;65778:78;:::o" + }, + "methodIdentifiers": { + "BALLOT_TYPEHASH()": "deaaa7cc", + "DOMAIN_TYPEHASH()": "20606b70", + "__abdicate()": "760fbc13", + "__acceptAdmin()": "b9a61961", + "__executeSetTimelockPendingAdmin(address,uint256)": "21f43e42", + "__queueSetTimelockPendingAdmin(address,uint256)": "91500671", + "cancel(uint256)": "40e58ee5", + "castVote(uint256,bool,uint96)": "dbfa977f", + "castVoteBySig(uint256,bool,uint8,bytes32,bytes32,uint96)": "5d254608", + "dclm8()": "94a08d58", + "execute(uint256)": "fe0d94c1", + "getActions(uint256)": "328dd982", + "getDescription(uint256)": "4925ec55", + "getReceipt(uint256,address)": "e23a9a52", + "guardian()": "452a9320", + "latestProposalIds(address)": "17977c61", + "name()": "06fdde03", + "proposalCount()": "da35c664", + "proposalMaxOperations()": "7bdbe4d0", + "proposalThreshold()": "b58131b0", + "proposals(uint256)": "013cf08b", + "propose(address[],uint256[],string[],bytes[],string)": "da95691a", + "queue(uint256)": "ddf0b009", + "quorumVotes()": "24bc1a64", + "state(uint256)": "3e4f49e6", + "timelock()": "d33219b4", + "votingDelay()": "3932abb1", + "votingPeriod()": "02a251a3" + } + } + }, + "TimelockInterface": { + "abi": [ + { + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "GRACE_PERIOD()": "c1a287e2", + "acceptAdmin()": "0e18b681", + "cancelTransaction(address,uint256,string,bytes,uint256)": "591fcdfe", + "delay()": "6a42b8f8", + "executeTransaction(address,uint256,string,bytes,uint256)": "0825f38f", + "queueTransaction(address,uint256,string,bytes,uint256)": "3a66f901", + "queuedTransactions(bytes32)": "f2b06537" + } + } + } + }, + "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol": { + "Timelock": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "CancelTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "QueueTransaction", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAXIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "name": "setDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingAdmin_", + "type": "address" + } + ], + "name": "setPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051611f8d380380611f8d8339818101604052604081101561003357600080fd5b8101908080519060200190929190805190602001909291905050506202a3008110156100aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611f1e6037913960400191505060405180910390fd5b62278d00811115610106576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611f556038913960400191505060405180910390fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806002819055505050611dc08061015e6000396000f3fe6080604052600436106100c65760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e214610732578063e177246e1461075d578063f2b0653714610798578063f851a440146107e9576100cd565b80636a42b8f8146106b15780637d645fab146106dc578063b1b43ae514610707576100cd565b80630825f38f146100cf5780630e18b681146102ce57806326782247146102e55780633a66f901146103265780634dd18bf5146104cd578063591fcdfe1461051e576100cd565b366100cd57005b005b610253600480360360a08110156100e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061082a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102da57600080fd5b506102e3610e75565b005b3480156102f157600080fd5b506102fa611002565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033257600080fd5b506104b7600480360360a081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561039057600080fd5b8201836020820111156103a257600080fd5b803590602001918460018302840111640100000000831117156103c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611028565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b34801561052a57600080fd5b506106af600480360360a081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184600183028401116401000000008311171561065357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611505565b005b3480156106bd57600080fd5b506106c6611839565b6040518082815260200191505060405180910390f35b3480156106e857600080fd5b506106f161183f565b6040518082815260200191505060405180910390f35b34801561071357600080fd5b5061071c611846565b6040518082815260200191505060405180910390f35b34801561073e57600080fd5b5061074761184d565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107966004803603602081101561078057600080fd5b8101908080359060200190929190505050611854565b005b3480156107a457600080fd5b506107d1600480360360208110156107bb57600080fd5b81019080803590602001909291905050506119c9565b60405180821515815260200191505060405180910390f35b3480156107f557600080fd5b506107fe6119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611a9e6038913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561094657808201518184015260208101905061092b565b50505050905090810190601f1680156109735780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611bf1603d913960400191505060405180910390fd5b82610a7a611a0d565b1015610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b406045913960600191505060405180910390fd5b610ae76212750084611a1590919063ffffffff16565b610aef611a0d565b1115610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611b0d6033913960400191505060405180910390fd5b60006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506060600086511415610b8657849050610c22565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610bea5780518252602082019150602081019050602083039250610bc7565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610c725780518252602082019150602081019050602083039250610c4f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610cd4576040519150601f19603f3d011682016040523d82523d6000602084013e610cd9565b606091505b509150915081610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611cd4603d913960400191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610dc1578082015181840152602081019050610da6565b50505050905090810190601f168015610dee5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e27578082015181840152602081019050610e0c565b50505050905090810190601f168015610e545780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38094505050505095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c2e6038913960400191505060405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611c9e6036913960400191505060405180910390fd5b6110eb6002546110dd611a0d565b611a1590919063ffffffff16565b821015611143576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526049815260200180611d116049913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156111b957808201518184015260208101905061119e565b50505050905090810190601f1680156111e65780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561121f578082015181840152602081019050611204565b50505050905090810190601f16801561124c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561132757808201518184015260208101905061130c565b50505050905090810190601f1680156113545780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561138d578082015181840152602081019050611372565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38091505095945050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c666038913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611ad66037913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561161f578082015181840152602081019050611604565b50505050905090810190601f16801561164c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561168557808201518184015260208101905061166a565b50505050905090810190601f1680156116b25780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561178d578082015181840152602081019050611772565b50505050905090810190601f1680156117ba5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611d5a6031913960400191505060405180910390fd5b6202a300811015611934576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611b856034913960400191505060405180910390fd5b62278d00811115611990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611bb96038913960400191505060405180910390fd5b806002819055506002547f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042905090565b600080828401905083811015611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2ea2646970667358221220298d1a9d48fdb2c6d595dc900d59b1dc20137ab14eda1a6218198be2c18f409964736f6c6343000703003354696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1F8D CODESIZE SUB DUP1 PUSH2 0x1F8D DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0xAA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F1E PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x106 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1F55 PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP PUSH2 0x1DC0 DUP1 PUSH2 0x15E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x732 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x798 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x7E9 JUMPI PUSH2 0xCD JUMP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x6B1 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x707 JUMPI PUSH2 0xCD JUMP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x51E JUMPI PUSH2 0xCD JUMP JUMPDEST CALLDATASIZE PUSH2 0xCD JUMPI STOP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x278 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0xE75 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FA PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x349 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x51C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13D8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x588 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x59A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C6 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6F1 PUSH2 0x183F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x747 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x796 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1854 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x19C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FE PUSH2 0x19E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A9E PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x946 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x92B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x973 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9AC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x991 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA71 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1BF1 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0xA7A PUSH2 0x1A0D JUMP JUMPDEST LT ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B40 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAE7 PUSH3 0x127500 DUP5 PUSH2 0x1A15 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xAEF PUSH2 0x1A0D JUMP JUMPDEST GT ISZERO PUSH2 0xB46 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B0D PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x60 PUSH1 0x0 DUP7 MLOAD EQ ISZERO PUSH2 0xB86 JUMPI DUP5 SWAP1 POP PUSH2 0xC22 JUMP JUMPDEST DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x4 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xBEA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xC72 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xD34 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1CD4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xDC1 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDA6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xDEE JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE27 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE0C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xE54 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP5 POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C2E PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x71614071B88DEE5E0B2AE578A9DD7B2EBBE9AE832BA419DC0242CD065A290B6C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C9E PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10EB PUSH1 0x2 SLOAD PUSH2 0x10DD PUSH2 0x1A0D JUMP JUMPDEST PUSH2 0x1A15 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D11 PUSH1 0x49 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11B9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x119E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11E6 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x121F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1204 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x124C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1327 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x130C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1354 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x138D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP2 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x145C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C66 PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1AD6 PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x161F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1604 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x164C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1685 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x166A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x16B2 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x178D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1772 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x17BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17F3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17D8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1820 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x278D00 DUP2 JUMP JUMPDEST PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH3 0x127500 DUP2 JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x31 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D5A PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0x1934 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B85 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x1990 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1BB9 PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD PUSH32 0x948B1F6A42EE138B7E34058BA85A37F716D55FF25FF05A763F15BED6A04C8D2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1A93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID SLOAD PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A2043616C6C206D PUSH22 0x737420636F6D652066726F6D2061646D696E2E54696D PUSH6 0x6C6F636B3A3A PUSH4 0x616E6365 PUSH13 0x5472616E73616374696F6E3A20 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E54696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206973207374616C PUSH6 0x2E54696D656C PUSH16 0x636B3A3A657865637574655472616E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH9 0x61736E277420737572 PUSH17 0x61737365642074696D65206C6F636B2E54 PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D75737420657863 PUSH6 0x6564206D696E PUSH10 0x6D756D2064656C61792E SLOAD PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D757374206E6F74 KECCAK256 PUSH6 0x786365656420 PUSH14 0x6178696D756D2064656C61792E54 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH9 0x61736E277420626565 PUSH15 0x207175657565642E54696D656C6F63 PUSH12 0x3A3A61636365707441646D69 PUSH15 0x3A2043616C6C206D75737420636F6D PUSH6 0x2066726F6D20 PUSH17 0x656E64696E6741646D696E2E54696D656C PUSH16 0x636B3A3A73657450656E64696E674164 PUSH14 0x696E3A2043616C6C206D75737420 PUSH4 0x6F6D6520 PUSH7 0x726F6D2054696D PUSH6 0x6C6F636B2E54 PUSH10 0x6D656C6F636B3A3A7175 PUSH6 0x75655472616E PUSH20 0x616374696F6E3A2043616C6C206D75737420636F PUSH14 0x652066726F6D2061646D696E2E54 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH6 0x786563757469 PUSH16 0x6E2072657665727465642E54696D656C PUSH16 0x636B3A3A71756575655472616E736163 PUSH21 0x696F6E3A20457374696D6174656420657865637574 PUSH10 0x6F6E20626C6F636B206D PUSH22 0x737420736174697366792064656C61792E54696D656C PUSH16 0x636B3A3A73657444656C61793A204361 PUSH13 0x6C206D75737420636F6D652066 PUSH19 0x6F6D2054696D656C6F636B2EA2646970667358 0x22 SLT KECCAK256 0x29 DUP14 BYTE SWAP14 0x48 REVERT 0xB2 0xC6 0xD5 SWAP6 0xDC SWAP1 0xD MSIZE 0xB1 0xDC KECCAK256 SGT PUSH27 0xB14EDA1A6218198BE2C18F409964736F6C6343000703003354696D PUSH6 0x6C6F636B3A3A PUSH4 0x6F6E7374 PUSH19 0x7563746F723A2044656C6179206D7573742065 PUSH25 0x63656564206D696E696D756D2064656C61792E54696D656C6F PUSH4 0x6B3A3A73 PUSH6 0x7444656C6179 GASPRICE KECCAK256 DIFFICULTY PUSH6 0x6C6179206D75 PUSH20 0x74206E6F7420657863656564206D6178696D756D KECCAK256 PUSH5 0x656C61792E ", + "sourceMap": "1767:4604:16:-:0;;;2651:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:6;2710;:23;;2702:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:7;2811:6;:23;;2803:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:6;2906:5;;:14;;;;;;;;;;;;;;;;;;2938:6;2930:5;:14;;;;2651:300;;1767:4604;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100c65760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e214610732578063e177246e1461075d578063f2b0653714610798578063f851a440146107e9576100cd565b80636a42b8f8146106b15780637d645fab146106dc578063b1b43ae514610707576100cd565b80630825f38f146100cf5780630e18b681146102ce57806326782247146102e55780633a66f901146103265780634dd18bf5146104cd578063591fcdfe1461051e576100cd565b366100cd57005b005b610253600480360360a08110156100e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061082a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102da57600080fd5b506102e3610e75565b005b3480156102f157600080fd5b506102fa611002565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033257600080fd5b506104b7600480360360a081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561039057600080fd5b8201836020820111156103a257600080fd5b803590602001918460018302840111640100000000831117156103c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611028565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b34801561052a57600080fd5b506106af600480360360a081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184600183028401116401000000008311171561065357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611505565b005b3480156106bd57600080fd5b506106c6611839565b6040518082815260200191505060405180910390f35b3480156106e857600080fd5b506106f161183f565b6040518082815260200191505060405180910390f35b34801561071357600080fd5b5061071c611846565b6040518082815260200191505060405180910390f35b34801561073e57600080fd5b5061074761184d565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107966004803603602081101561078057600080fd5b8101908080359060200190929190505050611854565b005b3480156107a457600080fd5b506107d1600480360360208110156107bb57600080fd5b81019080803590602001909291905050506119c9565b60405180821515815260200191505060405180910390f35b3480156107f557600080fd5b506107fe6119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611a9e6038913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561094657808201518184015260208101905061092b565b50505050905090810190601f1680156109735780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611bf1603d913960400191505060405180910390fd5b82610a7a611a0d565b1015610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b406045913960600191505060405180910390fd5b610ae76212750084611a1590919063ffffffff16565b610aef611a0d565b1115610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611b0d6033913960400191505060405180910390fd5b60006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506060600086511415610b8657849050610c22565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610bea5780518252602082019150602081019050602083039250610bc7565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610c725780518252602082019150602081019050602083039250610c4f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610cd4576040519150601f19603f3d011682016040523d82523d6000602084013e610cd9565b606091505b509150915081610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611cd4603d913960400191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610dc1578082015181840152602081019050610da6565b50505050905090810190601f168015610dee5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e27578082015181840152602081019050610e0c565b50505050905090810190601f168015610e545780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38094505050505095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c2e6038913960400191505060405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611c9e6036913960400191505060405180910390fd5b6110eb6002546110dd611a0d565b611a1590919063ffffffff16565b821015611143576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526049815260200180611d116049913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156111b957808201518184015260208101905061119e565b50505050905090810190601f1680156111e65780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561121f578082015181840152602081019050611204565b50505050905090810190601f16801561124c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561132757808201518184015260208101905061130c565b50505050905090810190601f1680156113545780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561138d578082015181840152602081019050611372565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38091505095945050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c666038913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611ad66037913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561161f578082015181840152602081019050611604565b50505050905090810190601f16801561164c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561168557808201518184015260208101905061166a565b50505050905090810190601f1680156116b25780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561178d578082015181840152602081019050611772565b50505050905090810190601f1680156117ba5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611d5a6031913960400191505060405180910390fd5b6202a300811015611934576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611b856034913960400191505060405180910390fd5b62278d00811115611990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611bb96038913960400191505060405180910390fd5b806002819055506002547f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042905090565b600080828401905083811015611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2ea2646970667358221220298d1a9d48fdb2c6d595dc900d59b1dc20137ab14eda1a6218198be2c18f409964736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x732 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x798 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x7E9 JUMPI PUSH2 0xCD JUMP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x6B1 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x707 JUMPI PUSH2 0xCD JUMP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x51E JUMPI PUSH2 0xCD JUMP JUMPDEST CALLDATASIZE PUSH2 0xCD JUMPI STOP JUMPDEST STOP JUMPDEST PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x278 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2C0 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0xE75 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FA PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x332 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x349 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x45B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1028 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x51C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13D8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6AF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x588 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x59A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 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 SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1505 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C6 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6F1 PUSH2 0x183F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x71C PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x747 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x796 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1854 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x19C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7FE PUSH2 0x19E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1A9E PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x946 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x92B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x973 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9AC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x991 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA71 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1BF1 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0xA7A PUSH2 0x1A0D JUMP JUMPDEST LT ISZERO PUSH2 0xAD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x45 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B40 PUSH1 0x45 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAE7 PUSH3 0x127500 DUP5 PUSH2 0x1A15 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xAEF PUSH2 0x1A0D JUMP JUMPDEST GT ISZERO PUSH2 0xB46 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B0D PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x60 PUSH1 0x0 DUP7 MLOAD EQ ISZERO PUSH2 0xB86 JUMPI DUP5 SWAP1 POP PUSH2 0xC22 JUMP JUMPDEST DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x4 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xBEA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xC72 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xD34 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x3D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1CD4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xDC1 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDA6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xDEE JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE27 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE0C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xE54 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP5 POP POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C2E PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x71614071B88DEE5E0B2AE578A9DD7B2EBBE9AE832BA419DC0242CD065A290B6C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C9E PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10EB PUSH1 0x2 SLOAD PUSH2 0x10DD PUSH2 0x1A0D JUMP JUMPDEST PUSH2 0x1A15 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D11 PUSH1 0x49 SWAP2 CODECOPY PUSH1 0x60 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11B9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x119E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x11E6 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x121F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1204 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x124C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1327 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x130C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1354 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x138D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1372 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x13BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP2 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x145C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1C66 PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x15A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x37 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1AD6 PUSH1 0x37 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x161F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1604 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x164C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1685 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x166A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x16B2 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP8 POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP7 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x178D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1772 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x17BA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP DUP4 DUP2 SUB DUP3 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17F3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17D8 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1820 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x278D00 DUP2 JUMP JUMPDEST PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH3 0x127500 DUP2 JUMP JUMPDEST ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x31 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1D5A PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT ISZERO PUSH2 0x1934 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x34 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1B85 PUSH1 0x34 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x1990 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1BB9 PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD PUSH32 0x948B1F6A42EE138B7E34058BA85A37F716D55FF25FF05A763F15BED6A04C8D2C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1A93 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID SLOAD PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A2043616C6C206D PUSH22 0x737420636F6D652066726F6D2061646D696E2E54696D PUSH6 0x6C6F636B3A3A PUSH4 0x616E6365 PUSH13 0x5472616E73616374696F6E3A20 NUMBER PUSH2 0x6C6C KECCAK256 PUSH14 0x75737420636F6D652066726F6D20 PUSH2 0x646D PUSH10 0x6E2E54696D656C6F636B GASPRICE GASPRICE PUSH6 0x786563757465 SLOAD PUSH19 0x616E73616374696F6E3A205472616E73616374 PUSH10 0x6F6E206973207374616C PUSH6 0x2E54696D656C PUSH16 0x636B3A3A657865637574655472616E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH9 0x61736E277420737572 PUSH17 0x61737365642074696D65206C6F636B2E54 PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D75737420657863 PUSH6 0x6564206D696E PUSH10 0x6D756D2064656C61792E SLOAD PUSH10 0x6D656C6F636B3A3A7365 PUSH21 0x44656C61793A2044656C6179206D757374206E6F74 KECCAK256 PUSH6 0x786365656420 PUSH14 0x6178696D756D2064656C61792E54 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH9 0x61736E277420626565 PUSH15 0x207175657565642E54696D656C6F63 PUSH12 0x3A3A61636365707441646D69 PUSH15 0x3A2043616C6C206D75737420636F6D PUSH6 0x2066726F6D20 PUSH17 0x656E64696E6741646D696E2E54696D656C PUSH16 0x636B3A3A73657450656E64696E674164 PUSH14 0x696E3A2043616C6C206D75737420 PUSH4 0x6F6D6520 PUSH7 0x726F6D2054696D PUSH6 0x6C6F636B2E54 PUSH10 0x6D656C6F636B3A3A7175 PUSH6 0x75655472616E PUSH20 0x616374696F6E3A2043616C6C206D75737420636F PUSH14 0x652066726F6D2061646D696E2E54 PUSH10 0x6D656C6F636B3A3A6578 PUSH6 0x637574655472 PUSH2 0x6E73 PUSH2 0x6374 PUSH10 0x6F6E3A205472616E7361 PUSH4 0x74696F6E KECCAK256 PUSH6 0x786563757469 PUSH16 0x6E2072657665727465642E54696D656C PUSH16 0x636B3A3A71756575655472616E736163 PUSH21 0x696F6E3A20457374696D6174656420657865637574 PUSH10 0x6F6E20626C6F636B206D PUSH22 0x737420736174697366792064656C61792E54696D656C PUSH16 0x636B3A3A73657444656C61793A204361 PUSH13 0x6C206D75737420636F6D652066 PUSH19 0x6F6D2054696D656C6F636B2EA2646970667358 0x22 SLT KECCAK256 0x29 DUP14 BYTE SWAP14 0x48 REVERT 0xB2 0xC6 0xD5 SWAP6 0xDC SWAP1 0xD MSIZE 0xB1 0xDC KECCAK256 SGT PUSH27 0xB14EDA1A6218198BE2C18F409964736F6C63430007030033000000 ", + "sourceMap": "1767:4604:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4972:1232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3435:236;;;;;;;;;;;;;:::i;:::-;;2535:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3934:598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3677:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4538:428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2568:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2458:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2409:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2360;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3030:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2592:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2509:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4972:1232;5106:12;5152:5;;;;;;;;;;5138:19;;:10;:19;;;5130:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5229:14;5267:6;5275:5;5282:9;5293:4;5299:3;5256:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5246:58;;;;;;5229:75;;5322:18;:26;5341:6;5322:26;;;;;;;;;;;;;;;;;;;;;5314:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5455:3;5432:19;:17;:19::i;:::-;:26;;5424:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:21;2396:7;5573:3;:7;;:21;;;;:::i;:::-;5550:19;:17;:19::i;:::-;:44;;5542:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5690:5;5661:18;:26;5680:6;5661:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;5706:21;5769:1;5748:9;5742:23;:28;5738:175;;;5797:4;5786:15;;5738:175;;;5883:9;5867:27;;;;;;5897:4;5843:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5832:70;;5738:175;5924:12;5938:23;5965:6;:11;;5983:5;5990:8;5965:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5923:76;;;;6017:7;6009:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6133:6;6106:63;;6125:6;6106:63;6141:5;6148:9;6159:4;6165:3;6106:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6187:10;6180:17;;;;;;4972:1232;;;;;;;:::o;3435:236::-;3497:12;;;;;;;;;;;3483:26;;:10;:26;;;3475:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3588:10;3580:5;;:18;;;;;;;;;;;;;;;;;;3631:1;3608:12;;:25;;;;;;;;;;;;;;;;;;3658:5;;;;;;;;;;3649:15;;;;;;;;;;;;3435:236::o;2535:27::-;;;;;;;;;;;;;:::o;3934:598::-;4058:7;4099:5;;;;;;;;;;;4085:19;;:10;:19;;;4077:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4188:30;4212:5;;4188:19;:17;:19::i;:::-;:23;;:30;;;;:::i;:::-;4181:3;:37;;4173:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:14;4345:6;4353:5;4360:9;4371:4;4377:3;4334:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:58;;;;;;4307:75;;4421:4;4392:18;:26;4411:6;4392:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;4466:6;4441:61;;4458:6;4441:61;4474:5;4481:9;4492:4;4498:3;4441:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4519:6;4512:13;;;3934:598;;;;;;;:::o;3677:251::-;3772:4;3750:27;;:10;:27;;;3742:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3863:13;3848:12;;:28;;;;;;;;;;;;;;;;;;3908:12;;;;;;;;;;;3892:29;;;;;;;;;;;;3677:251;:::o;4538:428::-;4686:5;;;;;;;;;;4672:19;;:10;:19;;;4664:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4762:14;4800:6;4808:5;4815:9;4826:4;4832:3;4789:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4779:58;;;;;;4762:75;;4876:5;4847:18;:26;4866:6;4847:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;4923:6;4897:62;;4915:6;4897:62;4931:5;4938:9;4949:4;4955:3;4897:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4538:428;;;;;;:::o;2568:17::-;;;;:::o;2458:44::-;2495:7;2458:44;:::o;2409:43::-;2446:6;2409:43;:::o;2360:::-;2396:7;2360:43;:::o;3030:399::-;3108:4;3086:27;;:10;:27;;;3078:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:6;3185;:23;;3177:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:7;3283:6;:23;;3275:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3385:6;3377:5;:14;;;;3416:5;;3407:15;;;;;;;;;;3030:399;:::o;2592:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2509:20::-;;;;;;;;;;;;:::o;6210:159::-;6262:4;6347:15;6340:22;;6210:159;:::o;882:176:13:-;940:7;959:9;975:1;971;:5;959:17;;999:1;994;:6;;986:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;1043:8;;;882:176;;;;:::o" + }, + "methodIdentifiers": { + "GRACE_PERIOD()": "c1a287e2", + "MAXIMUM_DELAY()": "7d645fab", + "MINIMUM_DELAY()": "b1b43ae5", + "acceptAdmin()": "0e18b681", + "admin()": "f851a440", + "cancelTransaction(address,uint256,string,bytes,uint256)": "591fcdfe", + "delay()": "6a42b8f8", + "executeTransaction(address,uint256,string,bytes,uint256)": "0825f38f", + "pendingAdmin()": "26782247", + "queueTransaction(address,uint256,string,bytes,uint256)": "3a66f901", + "queuedTransactions(bytes32)": "f2b06537", + "setDelay(uint256)": "e177246e", + "setPendingAdmin(address)": "4dd18bf5" + } + } + } + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol": { + "NetEmissionsTokenNetwork": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredDealer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "availableBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "retiredBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "TokenRetired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredDealer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_CONSUMER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_EMISSIONS_AUDITOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_OFFSET_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_REC_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getAvailableAndRetired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getIssuer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNumOfUniqueTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getRoles", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenDetails", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "internalType": "struct NetEmissionsTokenNetwork.CarbonTokenDetails", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenRetiredAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenType", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isConsumerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDealerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issueOnBehalf", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "limitedMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "registerConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "registerDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_limitedMode", + "type": "bool" + } + ], + "name": "setLimitedMode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "name": "setTimelock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "unregisterConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "unregisterDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50617a2c80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212203e19fb657a96ebdd262380c1111e194766395468c5b1c9e60e8aaa9e8bcad1b264736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A2C DUP1 PUSH3 0x21 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 0x273 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F157C9B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xCE6CCFAF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xF000BE98 EQ PUSH2 0x823 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x83F JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x85B JUMPI DUP1 PUSH4 0xFCBA7948 EQ PUSH2 0x879 JUMPI DUP1 PUSH4 0xFD0C4A9A EQ PUSH2 0x897 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xCE6CCFAF EQ PUSH2 0x74D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xDBA851B0 EQ PUSH2 0x79D JUMPI DUP1 PUSH4 0xDDC3E6EB EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xE2E564F2 EQ PUSH2 0x7D7 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x699 JUMPI DUP1 PUSH4 0xBDACB303 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xC1E03728 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x71D JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x7F157C9B EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x92089C46 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0xA0D975A7 EQ PUSH2 0x64B JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x53DBE982 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x53DBE982 EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0x5DDB368F EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x69F7EF44 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x76AED2E1 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x76CE4755 EQ PUSH2 0x54E JUMPI DUP1 PUSH4 0x78E5C592 EQ PUSH2 0x56C JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x33781A0E EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x44B22FDD EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x484 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x18A50D7E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x18A50D7E EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x1EF68EF7 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x293A7F2E EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3E4 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x324 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x5772 JUMP JUMPDEST PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0xC9B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x373 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x391 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x5816 JUMP JUMPDEST PUSH2 0xE07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x51BA JUMP JUMPDEST PUSH2 0x10C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1486 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x14FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x436 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x431 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x16D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x482 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47D SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1757 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x563C JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x6E51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1A02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D8 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x508 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x538 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x545 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x556 PUSH2 0x1DD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x574 PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1E1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B2 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5D0 SWAP2 SWAP1 PUSH2 0x5736 JUMP JUMPDEST PUSH2 0x1EC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x605 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x600 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x635 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x630 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1F2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1F6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x672 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x683 PUSH2 0x2016 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6AE SWAP2 SWAP1 PUSH2 0x542B JUMP JUMPDEST PUSH2 0x201D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x219E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E6 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F8 SWAP2 SWAP1 PUSH2 0x74D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x71B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x253D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x737 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x732 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x744 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x767 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x778 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x79B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x796 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x28EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7A5 PUSH2 0x2963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D0 SWAP2 SWAP1 PUSH2 0x56A8 JUMP JUMPDEST PUSH2 0x2976 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x29DF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81A SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x83D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x838 SWAP2 SWAP1 PUSH2 0x5308 JUMP JUMPDEST PUSH2 0x2C28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x859 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x854 SWAP2 SWAP1 PUSH2 0x5279 JUMP JUMPDEST PUSH2 0x2CEA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x863 PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x881 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x552E JUMP JUMPDEST PUSH2 0x3077 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91B SWAP1 PUSH2 0x7015 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA11 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA3F PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA6D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA9B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xAA6 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xAAE JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xAB6 JUMPI POP DUP1 JUMPDEST PUSH2 0xAF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAEC SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAFE DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB34 SWAP1 PUSH2 0x72B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x7255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE CALLER DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2CEA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xC8F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC64 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8F 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 0xC72 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA8 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCDE SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCF0 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xD2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD26 SWAP1 PUSH2 0x7095 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD76 SWAP1 PUSH2 0x7275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP2 JUMP JUMPDEST PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x97 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE33 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE61 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE8F PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEBD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xEC8 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xED0 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xED8 JUMPI POP DUP1 JUMPDEST PUSH2 0xF17 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0E SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF56 SWAP1 PUSH2 0x7055 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF69 CALLER DUP8 PUSH2 0x8B3 JUMP JUMPDEST DUP6 GT ISZERO PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA2 SWAP1 PUSH2 0x7195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFB6 CALLER DUP8 DUP8 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x1019 DUP6 PUSH1 0xCD PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8F1B5EBB586D3D169E4ED07DB9CD10CE0DD30C7B656171310EAE7517C0B53CF9 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x7415 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1179 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1170 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1181 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x11C7 JUMPI POP PUSH2 0x11C6 DUP6 PUSH2 0x11C1 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x1206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FD SWAP1 PUSH2 0x71F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1220 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x13F1 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x123A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1252 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x12D9 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1390 DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1468 SWAP3 SWAP2 SWAP1 PUSH2 0x6E73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x147E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x380B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14AD PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x14A8 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x14EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14E3 SWAP1 PUSH2 0x6FD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14F6 DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1507 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x153D SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x154F DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x158E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1585 SWAP1 PUSH2 0x7295 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x15C9 JUMPI PUSH2 0x15C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1604 JUMPI PUSH2 0x15FF PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x162F JUMP JUMPDEST PUSH2 0x162E PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x1486 JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x165A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x1486 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA8377DEEE15954185683D55EFFD369508B4935978C8CB2BAB790BF04C5701814 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP4 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1740 SWAP1 PUSH2 0x7495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1753 DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1783 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17DF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x17EA JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x17F2 JUMPI POP DUP1 JUMPDEST PUSH2 0x1831 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1893 JUMPI PUSH2 0x1853 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1889 SWAP1 PUSH2 0x72D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x18BD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x1486 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69A0ADEE259D26FE61F4776F7BEA7F3A9737C7321256821B985F988545EFD319 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x194C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1943 SWAP1 PUSH2 0x73D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1995 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x19F7 JUMPI PUSH2 0x19D4 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19B3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19C7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8B3 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19E0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x199B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2E PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A5C PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A8A PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1A95 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1A9D JUMPI POP DUP1 JUMPDEST PUSH2 0x1ADC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AD3 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B3E JUMPI PUSH2 0x1AFE PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1B3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B34 SWAP1 PUSH2 0x70F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1B68 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x28EF JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3A38088DA75EE2D80F6C753F55F8FD17602AE17D8BD0EF44D5E1F28AB5AF11F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BBD PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP5 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C1D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP6 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP7 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1C56 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1C5E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1C77 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C87 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1CC6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBD SWAP1 PUSH2 0x7115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x52656E657761626C6520456E6572677920436572746966696361746500000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436172626F6E20456D697373696F6E73204F6666736574000000000000000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4175646974656420456D697373696F6E73000000000000000000000000000000 DUP2 MSTORE POP SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP2 JUMP JUMPDEST PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1E29 DUP6 DUP6 PUSH2 0x8B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA0D975A7 DUP8 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E68 SWAP3 SWAP2 SWAP1 PUSH2 0x6E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EB8 SWAP2 SWAP1 PUSH2 0x57ED JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF3 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B41 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F25 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F78 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1FB7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FAE SWAP1 PUSH2 0x7335 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x203C PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2093 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208A SWAP1 PUSH2 0x73B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0x20A0 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x214D PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2192 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x21AB PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21E1 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x2236 PUSH2 0x4DD9 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23E9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x23BE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23E9 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 0x23CC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x248B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2460 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248B 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 0x246E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x252D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2502 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x252D 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 0x2510 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x255C JUMPI POP PUSH2 0x255B PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2572 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25A8 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x2601 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x2619 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3B9C JUMP JUMPDEST PUSH2 0x2663 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 PUSH2 0x3C9E JUMP JUMPDEST PUSH2 0x2670 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x269A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26EE PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x2718 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x3D02 JUMP JUMPDEST DUP2 PUSH1 0xC9 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x27D7 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27FB PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3D10 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2818 PUSH1 0x0 DUP1 SHL DUP9 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2846 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP10 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2874 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28A2 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP12 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28D0 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP13 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP5 DUP5 SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP POP POP POP POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x2916 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2911 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2955 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x294C SWAP1 PUSH2 0x7175 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x295F DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x2983 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x29EC PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2A2B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A22 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A34 DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6A SWAP1 PUSH2 0x70B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AAE JUMPI PUSH2 0x2AA9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B15 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AE9 JUMPI PUSH2 0x2AE4 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B14 JUMP JUMPDEST PUSH2 0x2B13 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x2B1E DUP3 PUSH2 0x1BC2 JUMP JUMPDEST PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x98552DED770F1D05A505572F3387C108DBC6B566EA3D49F83CFF3D1F1C72A042 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2C8D JUMPI POP PUSH2 0x2C8C PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x2CCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CC3 SWAP1 PUSH2 0x6F75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CDE DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D51 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D62 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2DA8 JUMPI POP PUSH2 0x2DA7 DUP6 PUSH2 0x2DA2 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DDE SWAP1 PUSH2 0x70D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2DF1 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E11 DUP2 DUP8 DUP8 PUSH2 0x2E02 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x2E0B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x2E8E DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2F45 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x300F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3025 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A3 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30D1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30FF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x310A JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x3112 JUMPI POP DUP1 JUMPDEST PUSH2 0x3151 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3148 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3163 DUP13 CALLER DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x317E PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST LT PUSH2 0x318C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31FD SWAP1 PUSH2 0x7435 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3231 DUP2 PUSH1 0x0 DUP8 PUSH2 0x3222 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x322B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x3294 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x335F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3376 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x33ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33E4 SWAP1 PUSH2 0x7235 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33F7 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3427 DUP2 DUP6 PUSH1 0x0 PUSH2 0x3409 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x3412 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x34A4 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79A9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x356F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x35C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35BF SWAP1 PUSH2 0x7075 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x35E8 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x476D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x37AD JUMPI PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3606 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x366E JUMPI POP PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ PUSH2 0x3733 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x36EF JUMPI POP PUSH2 0x36EE PUSH1 0x0 DUP1 SHL DUP10 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x372E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3725 SWAP1 PUSH2 0x74B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x379D JUMP JUMPDEST PUSH2 0x375D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP10 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x379C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3793 SWAP1 PUSH2 0x7355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x35EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x37FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37F5 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x382A DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x39D3 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3870 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x38BB JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38B8 SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x394A JUMPI PUSH2 0x38C7 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x38D2 JUMPI POP PUSH2 0x390F JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3906 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3941 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x39D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39C8 SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3A03 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x4788 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3A6B JUMPI PUSH2 0x3A10 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x3A87 JUMPI POP PUSH1 0x3 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3A9A JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AC7 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x47B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3B2F JUMPI PUSH2 0x3AD4 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B50 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B83 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4855 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B96 ADDRESS PUSH2 0x4775 JUMP JUMPDEST ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x3BBB JUMPI POP PUSH2 0x3BBA PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x3BD1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x3C10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C07 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x3C60 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x3C68 PUSH2 0x4878 JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x4960 JUMP JUMPDEST PUSH2 0x3C79 DUP3 PUSH2 0x4A58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C9A JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP4 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x3D0C DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1E DUP3 PUSH1 0x0 ADD PUSH2 0x4B6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D2E DUP9 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x3D6D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D64 SWAP1 PUSH2 0x7475 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3F93 JUMPI PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ DUP1 PUSH2 0x3D97 JUMPI POP PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x3F17 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E23 SWAP1 PUSH2 0x7315 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3E39 PUSH1 0x0 DUP1 SHL DUP12 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3E78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E6F SWAP1 PUSH2 0x7395 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3EA2 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST DUP1 PUSH2 0x3ED3 JUMPI POP PUSH2 0x3ED2 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x3F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F09 SWAP1 PUSH2 0x71B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F8E JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x3F8D JUMPI PUSH2 0x3F4D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F83 SWAP1 PUSH2 0x7375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST PUSH2 0x4100 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x400D JUMPI PUSH2 0x3FC9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4008 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FFF SWAP1 PUSH2 0x73F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FF JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x4087 JUMPI PUSH2 0x4043 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4082 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4079 SWAP1 PUSH2 0x7155 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x40FD JUMPI PUSH2 0x40BD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x40FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40F3 SWAP1 PUSH2 0x72F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH2 0x410A PUSH1 0xCB PUSH2 0x4B7B JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 PUSH2 0x411A PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH2 0x4134 PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP5 DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP TIMESTAMP DUP2 PUSH1 0x5 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x7 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x421B SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x8 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4234 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP2 DUP2 PUSH1 0x9 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x424D SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP PUSH2 0x4272 DUP12 PUSH2 0x425C PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST PUSH1 0x3 DUP10 PUSH1 0xFF AND EQ ISZERO PUSH2 0x43B9 JUMPI PUSH2 0x42B1 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x433C DUP9 PUSH1 0xCD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x99CC3EEB446560C9A2D2483BC5160735EC0FB1851AEA3BDE32E7A56C30C11DA6 DUP11 PUSH1 0xCD PUSH1 0x0 DUP7 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 PUSH1 0x0 ADD SLOAD DUP7 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP8 PUSH1 0x3 ADD SLOAD DUP9 PUSH1 0x4 ADD SLOAD DUP10 PUSH1 0x6 ADD SLOAD DUP11 PUSH1 0x5 ADD SLOAD DUP12 PUSH1 0x7 ADD DUP13 PUSH1 0x8 ADD DUP14 PUSH1 0x9 ADD PUSH1 0x40 MLOAD PUSH2 0x4518 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x753B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x4548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4577 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x4588 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45BC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x4765 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4602 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6DCE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x464D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x464A SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x46DC JUMPI PUSH2 0x4659 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x4664 JUMPI POP PUSH2 0x46A1 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4698 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46D3 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4763 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x475A SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47B0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4B91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47E0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4C01 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x4833 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x482A SWAP1 PUSH2 0x6F95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4842 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4897 JUMPI POP PUSH2 0x4896 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x48AD JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x48EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48E3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x493C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 ISZERO PUSH2 0x495D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x497F JUMPI POP PUSH2 0x497E PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4995 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x49D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49CB SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4A24 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4A34 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A55 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4A77 JUMPI POP PUSH2 0x4A76 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4A8D JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x4ACC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4AC3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4B1C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4B25 DUP3 PUSH2 0x4DBF JUMP JUMPDEST PUSH2 0x4B35 PUSH4 0xD9B67A26 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST PUSH2 0x4B45 PUSH4 0xE89341C PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B66 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9D DUP4 DUP4 PUSH2 0x4855 JUMP JUMPDEST PUSH2 0x4BF6 JUMPI DUP3 PUSH1 0x0 ADD DUP3 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 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x4BFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x4CDD JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4C4C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4C69 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x4CA1 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x4CE3 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x4D52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D49 SWAP1 PUSH2 0x7035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x67 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4DD5 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x4EA3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4ED1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4ED1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4ED0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4EB5 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4EDE SWAP2 SWAP1 PUSH2 0x4EE2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4EFB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4EE3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4F0E DUP2 PUSH2 0x791E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4F38 PUSH2 0x4F33 DUP3 PUSH2 0x762C JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4F5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F8D JUMPI DUP2 PUSH2 0x4F73 DUP9 DUP3 PUSH2 0x4EFF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F60 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4FBB PUSH2 0x4FB6 DUP3 PUSH2 0x7658 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4FE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5010 JUMPI DUP2 PUSH2 0x4FF6 DUP9 DUP3 PUSH2 0x5116 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4FE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5029 DUP2 PUSH2 0x7935 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x503E DUP2 PUSH2 0x794C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5053 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5068 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x507F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5092 PUSH2 0x508D DUP3 PUSH2 0x7684 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x50AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50B9 DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x50E6 PUSH2 0x50E1 DUP3 PUSH2 0x76B4 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x5102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x510D DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5125 DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x513A DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x514F DUP2 PUSH2 0x7991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5175 DUP5 DUP3 DUP6 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x519F DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x51B0 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x51D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51E0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x51F1 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x520E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x521A DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5243 DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x526C DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x5291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x529F DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x52B0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x52C1 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x52D2 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52FB DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5336 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x5347 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x5358 DUP14 DUP3 DUP15 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x5369 DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x537A DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x538B DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x539C DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53C5 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53EF DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5419 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x543E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x544C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x545D DUP6 DUP3 DUP7 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x547A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5488 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5499 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x54B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x54C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x54D7 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x54E8 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5513 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5524 DUP6 DUP3 DUP7 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x554D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x555B DUP13 DUP3 DUP14 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x556C DUP13 DUP3 DUP14 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x557D DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x558E DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x559F DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x55B0 DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55D9 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5602 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5620 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x562C DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x564F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5675 DUP6 DUP3 DUP7 ADD PUSH2 0x4F14 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x569E DUP6 DUP3 DUP7 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56C8 DUP5 DUP3 DUP6 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56F1 DUP5 DUP3 DUP6 ADD PUSH2 0x502F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x570D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x571B DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x572C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5757 DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5768 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5792 DUP5 DUP3 DUP6 ADD PUSH2 0x5044 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57BB DUP5 DUP3 DUP6 ADD PUSH2 0x5059 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57E4 DUP5 DUP3 DUP6 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x580D DUP5 DUP3 DUP6 ADD PUSH2 0x512B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5829 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5837 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5848 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585E DUP4 DUP4 PUSH2 0x6D0F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5873 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5882 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5893 DUP3 PUSH2 0x7709 JUMP JUMPDEST PUSH2 0x589D DUP2 DUP6 PUSH2 0x7737 JUMP JUMPDEST SWAP4 POP PUSH2 0x58A8 DUP4 PUSH2 0x76E4 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x58D9 JUMPI DUP2 MLOAD PUSH2 0x58C0 DUP9 DUP3 PUSH2 0x5852 JUMP JUMPDEST SWAP8 POP PUSH2 0x58CB DUP4 PUSH2 0x772A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x58AC JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x58EF DUP2 PUSH2 0x778D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x58FE DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x590F DUP3 PUSH2 0x7714 JUMP JUMPDEST PUSH2 0x5919 DUP2 DUP6 PUSH2 0x7748 JUMP JUMPDEST SWAP4 POP PUSH2 0x5929 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x5932 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5948 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x5952 DUP2 DUP6 PUSH2 0x7759 JUMP JUMPDEST SWAP4 POP PUSH2 0x5962 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x596B DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5981 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x598B DUP2 DUP6 PUSH2 0x776A JUMP JUMPDEST SWAP4 POP PUSH2 0x599B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x59A4 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x59CC JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x59F2 JUMPI PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x59DD DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x5A00 DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH2 0x5A0B DUP6 PUSH2 0x76F4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5A2D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5A0E JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A4B PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AB1 PUSH1 0x35 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A69737375654F6E426568616C663A2063616C6C206D7573742063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D652066726F6D2044414F206F722061646D696E0000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B17 PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6473000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B7D PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BE3 PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F206772616E740000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C49 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C794465616C65723A206D73672E73656E646572206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061206465616C65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CAF PUSH1 0x2B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D15 PUSH1 0x1C DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x4552433136353A20696E76616C696420696E7465726661636520696400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D55 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A20746F6B656E496420646F6573206E6F742065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7869737400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DBB PUSH1 0x1B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DFB PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A20746F6B656E496420646F6573206E6F7420657869 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7374000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E61 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E72656769737465724465616C65723A20746F6B656E547970 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65496420646F6573206E6F742065786973740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC7 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2D PUSH1 0x46 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E7265676973746572436F6E73756D6572286C696D69746564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x293A206F6E6C792061646D696E2063616E20756E726567697374657220636F6E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x73756D6572730000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FB9 PUSH1 0x2A DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E547970653A20746F6B656E496420646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F7420657869737400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x601F PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C7941646D696E3A206D73672E73656E646572206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7468652061646D696E0000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6085 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726564206F6666736574206465616C657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60EB PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F207265766F6B6500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6151 PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A206E6F7420656E6F75676820617661696C6162 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C652062616C616E636520746F20726574697265000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61B7 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A2070726F706F73657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E6F7420612072656769737465726564206465616C6572000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621D PUSH1 0x25 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6283 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62E9 PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634F PUSH1 0x23 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206275726E2066726F6D20746865207A65726F2061646472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B5 PUSH1 0x36 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A2073656E64657220616E64207265636569 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7665722063616E6E6F74206265207468652073616D6500000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641B PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A2063616E6E6F74206D696E74206E657720746F6B65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E7320696E206C696D69746564206D6F64650000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6481 PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A72656769737465724465616C65723A20746F6B656E5479706549 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420646F6573206E6F7420657869737400000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64E7 PUSH1 0x26 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A20746F6B656E496420646F6573206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2065786973740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x654D PUSH1 0x42 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265676973746572436F6E73756D6572286C696D69746564293A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206F6E6C792061646D696E2063616E20726567697374657220636F6E73756D65 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7273000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x65D9 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420656D697373696F6E732061756469746F72000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x663F PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A206D73672E73656E6465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72206E6F742074696D656C6F636B000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A5 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E52657469726564416D6F756E743A20746F6B PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x656E496420646F6573206E6F7420657869737400000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x670B PUSH1 0x58 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C7920656D697373696F6E732061756469746F72732063616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x206973737565206175646974656420656D697373696F6E730000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6797 PUSH1 0x40 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756572206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061207265676973746572656420656D697373696F6E732061756469746F72 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67FD PUSH1 0x27 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756565206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061646D696E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6863 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68C9 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x692F PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420524543206465616C657200000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6995 PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69FB PUSH1 0x21 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A61 PUSH1 0x3D DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A636F6E73756D65724F724465616C65723A206D73672E73656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6572206E6F74206120636F6E73756D6572206F722061206465616C6572000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AC7 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20746F6B656E54797065496420697320696E76 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B2D PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B93 PUSH1 0x4B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C792061646D696E20616E642044414F2063616E207472616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7366657220746F6B656E73000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x6C2B PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x6C3E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x6D2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x6C51 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x6C64 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x6C77 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x6C8A PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x6C9D PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x6CB0 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x6CCA DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x6CE6 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x6D02 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6D18 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D27 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D36 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D45 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D60 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6D7B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6D88 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6D9A DUP2 DUP7 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6DAE DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6DC2 DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6DE3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DF0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DFD PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x6E0A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6E1C DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6E3D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6E4A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E6B DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E8D DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6EA1 DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EBF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6EDA PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EE7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EF4 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F01 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F0E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6F2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F4D DUP2 DUP5 PUSH2 0x5976 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F6E DUP2 PUSH2 0x5A3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F8E DUP2 PUSH2 0x5AA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FAE DUP2 PUSH2 0x5B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FCE DUP2 PUSH2 0x5B70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FEE DUP2 PUSH2 0x5BD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x700E DUP2 PUSH2 0x5C3C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x702E DUP2 PUSH2 0x5CA2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x704E DUP2 PUSH2 0x5D08 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x706E DUP2 PUSH2 0x5D48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x708E DUP2 PUSH2 0x5DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70AE DUP2 PUSH2 0x5DEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70CE DUP2 PUSH2 0x5E54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70EE DUP2 PUSH2 0x5EBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x710E DUP2 PUSH2 0x5F20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x712E DUP2 PUSH2 0x5FAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x714E DUP2 PUSH2 0x6012 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x716E DUP2 PUSH2 0x6078 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x718E DUP2 PUSH2 0x60DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71AE DUP2 PUSH2 0x6144 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71CE DUP2 PUSH2 0x61AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71EE DUP2 PUSH2 0x6210 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x720E DUP2 PUSH2 0x6276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x722E DUP2 PUSH2 0x62DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x724E DUP2 PUSH2 0x6342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726E DUP2 PUSH2 0x63A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x728E DUP2 PUSH2 0x640E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72AE DUP2 PUSH2 0x6474 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72CE DUP2 PUSH2 0x64DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72EE DUP2 PUSH2 0x6540 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x730E DUP2 PUSH2 0x65CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x732E DUP2 PUSH2 0x6632 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734E DUP2 PUSH2 0x6698 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x736E DUP2 PUSH2 0x66FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x738E DUP2 PUSH2 0x678A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73AE DUP2 PUSH2 0x67F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73CE DUP2 PUSH2 0x6856 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73EE DUP2 PUSH2 0x68BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x740E DUP2 PUSH2 0x6922 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x742E DUP2 PUSH2 0x6988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x744E DUP2 PUSH2 0x69EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x746E DUP2 PUSH2 0x6A54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x748E DUP2 PUSH2 0x6ABA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74AE DUP2 PUSH2 0x6B20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74CE DUP2 PUSH2 0x6B86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74EF DUP2 DUP5 PUSH2 0x6C12 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x750C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7527 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7534 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x7551 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x755E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x756B PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7578 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x6D3C JUMP JUMPDEST PUSH2 0x7585 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7592 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x759F PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x75AC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x75BF DUP2 DUP7 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x75D4 DUP2 DUP6 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x75E9 DUP2 DUP5 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7622 JUMPI PUSH2 0x7621 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7647 JUMPI PUSH2 0x7646 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7673 JUMPI PUSH2 0x7672 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x769F JUMPI PUSH2 0x769E PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x76CF JUMPI PUSH2 0x76CE PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7786 DUP3 PUSH2 0x77CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7833 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7818 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x7842 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x7878 JUMPI PUSH2 0x791B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x7889 PUSH1 0x0 MLOAD PUSH2 0x785B JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x789A JUMPI POP PUSH2 0x791B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x78C6 JUMPI POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x78E5 JUMPI POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x7900 JUMPI POP POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST PUSH2 0x7909 DUP3 PUSH2 0x784A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7927 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP2 EQ PUSH2 0x7932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x793E DUP2 PUSH2 0x778D JUMP JUMPDEST DUP2 EQ PUSH2 0x7949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7955 DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP2 EQ PUSH2 0x7960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x796C DUP2 PUSH2 0x77A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x7977 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7983 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP2 EQ PUSH2 0x798E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x799A DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x79A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524331 BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY NOT 0xFB PUSH6 0x7A96EBDD2623 DUP1 0xC1 GT 0x1E NOT SELFBALANCE PUSH7 0x395468C5B1C9E6 0xE DUP11 0xAA SWAP15 DUP12 0xCA 0xD1 0xB2 PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "485:21510:17:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:71125:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:19", + "type": "" + } + ], + "src": "7:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "246:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "295:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "304:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "307:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "297:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "297:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "297:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "274:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "282:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "270:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "289:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "266:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "266:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "259:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "259:35:19" + }, + "nodeType": "YulIf", + "src": "256:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "320:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "347:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "334:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "334:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "324:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "363:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "444:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "387:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "387:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "372:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "372:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "363:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "461:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "472:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "465:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "493:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "500:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "486:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "486:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "486:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "508:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "522:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "518:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "518:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "508:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "536:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "547:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "552:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "543:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "543:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "536:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "597:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "608:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "601:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "663:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "675:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "665:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "665:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "665:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "633:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "642:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "650:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "638:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "638:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "629:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "629:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "658:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "626:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "626:36:19" + }, + "nodeType": "YulIf", + "src": "623:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "762:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "780:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "766:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "803:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "829:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "841:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "808:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "808:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "796:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "796:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "796:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "859:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "870:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "875:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "866:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "866:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "859:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "893:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "904:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "909:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "900:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "900:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "893:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "710:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "713:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "707:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "707:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "721:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "723:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "732:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "735:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "728:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "728:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "723:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "692:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "694:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "698:1:19", + "type": "" + } + ] + } + ] + }, + "src": "688:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "224:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "232:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "240:5:19", + "type": "" + } + ], + "src": "169:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1030:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1079:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1088:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1091:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1081:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1081:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1081:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1058:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1066:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1054:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1073:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1050:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1050:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1043:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1043:35:19" + }, + "nodeType": "YulIf", + "src": "1040:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1104:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1131:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1118:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1118:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1108:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1147:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1228:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1171:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "1171:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "1156:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "1156:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1147:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1245:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1256:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1249:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1277:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1284:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1270:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1270:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1270:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "1292:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1306:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1314:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1302:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1302:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1292:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1320:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1331:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1336:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1327:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1320:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1381:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1392:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1385:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1447:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1456:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1459:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1449:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1449:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1449:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1417:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1426:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1422:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1413:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1413:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1442:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1410:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1410:36:19" + }, + "nodeType": "YulIf", + "src": "1407:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1532:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1546:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1564:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "1550:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1587:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "1613:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1625:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1592:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1592:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1580:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1580:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1580:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "1643:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1654:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1650:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1650:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1643:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1677:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1688:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1693:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1684:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1677:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1494:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1497:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1491:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1491:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1505:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1507:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1516:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1519:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1512:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1507:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1476:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1478:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1487:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1482:1:19", + "type": "" + } + ] + } + ] + }, + "src": "1472:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1008:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1016:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1024:5:19", + "type": "" + } + ], + "src": "953:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1769:84:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1779:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1801:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1788:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1788:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1779:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1841:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1817:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "1817:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1817:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1747:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1755:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1763:5:19", + "type": "" + } + ], + "src": "1720:133:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1911:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1921:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1943:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1930:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1930:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1921:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1986:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "1959:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "1959:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1959:33:19" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1889:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1897:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1905:5:19", + "type": "" + } + ], + "src": "1859:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2055:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2065:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2087:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2074:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2074:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2065:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2129:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "2103:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "2103:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2103:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2033:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2041:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2049:5:19", + "type": "" + } + ], + "src": "2004:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2209:79:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2219:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2234:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2228:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "2228:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2219:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2276:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "2250:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "2250:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2250:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2187:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2195:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2203:5:19", + "type": "" + } + ], + "src": "2147:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2355:403:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2404:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2413:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2416:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2406:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2406:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2406:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2383:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2391:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2379:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2379:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2398:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2375:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2375:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2368:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2368:35:19" + }, + "nodeType": "YulIf", + "src": "2365:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2429:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2456:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2443:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2443:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2433:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2472:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2537:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2496:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "2496:48:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2481:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2481:64:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2472:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2561:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2568:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2554:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2554:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2554:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2584:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2599:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2607:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2595:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2595:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2588:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2621:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2636:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2643:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2632:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2632:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2625:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2686:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2695:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2698:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2688:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2688:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2688:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2667:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2672:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2663:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2663:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2681:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2660:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "2660:25:19" + }, + "nodeType": "YulIf", + "src": "2657:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2735:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2740:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2745:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "2711:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "2711:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2711:41:19" + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2333:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2341:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2349:5:19", + "type": "" + } + ], + "src": "2294:464:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2826:404:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2875:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2884:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2887:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2877:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2877:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2877:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2854:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2862:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2850:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2850:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2869:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2846:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2846:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2839:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2839:35:19" + }, + "nodeType": "YulIf", + "src": "2836:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2900:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2927:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2914:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2914:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2904:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2943:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3009:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2967:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "2967:49:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2952:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2952:65:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2943:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3033:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3040:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3026:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3026:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3026:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3056:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3071:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3079:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3067:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3067:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3060:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3093:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3108:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3115:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3104:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3104:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "3097:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3158:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3167:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3170:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3160:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3160:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3160:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3139:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3144:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3135:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3135:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3153:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3132:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "3132:25:19" + }, + "nodeType": "YulIf", + "src": "3129:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3207:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3212:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3217:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "3183:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "3183:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3183:41:19" + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2804:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2812:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2820:5:19", + "type": "" + } + ], + "src": "2764:466:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3288:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3298:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3320:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3307:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3307:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3298:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3363:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3336:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3336:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3336:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3266:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3274:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3282:5:19", + "type": "" + } + ], + "src": "3236:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3454:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3469:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3463:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "3463:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3454:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3512:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3485:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3485:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3485:33:19" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3422:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3430:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3438:5:19", + "type": "" + } + ], + "src": "3381:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3580:85:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3590:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3612:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3599:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3599:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3590:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3653:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "3628:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "3628:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3628:31:19" + } + ] + }, + "name": "abi_decode_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3558:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3566:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3574:5:19", + "type": "" + } + ], + "src": "3530:135:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3737:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3783:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3792:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3795:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3785:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3785:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3785:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3758:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3767:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3754:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3754:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3779:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3750:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3750:32:19" + }, + "nodeType": "YulIf", + "src": "3747:2:19" + }, + { + "nodeType": "YulBlock", + "src": "3809:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3823:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3837:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3827:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3851:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3886:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3897:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3882:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3882:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3906:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3861:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3861:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3851:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3707:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3718:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3730:6:19", + "type": "" + } + ], + "src": "3671:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4020:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4066:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4075:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4078:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4068:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4068:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4068:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4041:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4050:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4037:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4037:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4062:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4033:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4033:32:19" + }, + "nodeType": "YulIf", + "src": "4030:2:19" + }, + { + "nodeType": "YulBlock", + "src": "4092:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4106:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4120:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4110:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4134:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4169:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4180:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4165:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4165:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4189:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4144:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4144:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4134:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4217:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4231:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4235:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4260:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4295:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4306:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4291:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4291:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4315:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4270:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4270:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4260:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3982:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3993:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4005:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4013:6:19", + "type": "" + } + ], + "src": "3937:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4539:1038:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4586:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4595:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4598:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4588:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4588:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4588:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4560:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4569:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4556:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4581:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4552:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4552:33:19" + }, + "nodeType": "YulIf", + "src": "4549:2:19" + }, + { + "nodeType": "YulBlock", + "src": "4612:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4626:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4640:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4630:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4654:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4689:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4700:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4685:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4685:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4709:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4664:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4664:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4654:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4737:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4751:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4765:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4755:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4780:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4815:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4826:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4811:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4811:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4835:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4790:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4790:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4780:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4863:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4877:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4908:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4919:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4904:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4904:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4891:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "4891:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4881:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4970:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4979:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4982:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4972:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4972:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4972:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4942:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4950:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4939:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "4939:30:19" + }, + "nodeType": "YulIf", + "src": "4936:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "4999:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5059:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5070:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5055:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5055:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5079:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5009:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "5009:78:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4999:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5107:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5121:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5152:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5163:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5135:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5135:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5125:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5214:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5223:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5226:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5216:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5216:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5216:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5186:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5194:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5183:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5183:30:19" + }, + "nodeType": "YulIf", + "src": "5180:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "5243:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5303:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5314:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5299:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5299:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5323:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5253:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "5253:78:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "5243:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5351:219:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5365:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5396:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5407:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5392:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5392:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5379:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5379:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5369:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5459:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5468:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5471:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5461:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5461:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5461:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5431:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5428:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5428:30:19" + }, + "nodeType": "YulIf", + "src": "5425:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "5488:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5532:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5543:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5528:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5552:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5498:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "5498:62:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "5488:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4477:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4488:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4500:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4508:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4516:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "4524:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "4532:6:19", + "type": "" + } + ], + "src": "4346:1231:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5726:802:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5773:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5782:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5785:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5775:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5775:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5775:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5747:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5756:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5743:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5743:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5768:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5739:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5739:33:19" + }, + "nodeType": "YulIf", + "src": "5736:2:19" + }, + { + "nodeType": "YulBlock", + "src": "5799:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5813:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5827:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5817:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5841:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5876:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5887:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5872:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5872:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5896:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5851:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "5851:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5841:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5924:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5938:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5952:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5942:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5967:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6002:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6013:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5998:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6022:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5977:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "5977:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5967:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6050:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6064:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6078:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6068:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6093:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6128:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6139:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6124:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6124:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6148:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6103:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6103:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6093:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6176:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6190:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6204:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6194:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6219:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6254:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6265:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6250:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6250:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6274:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6229:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6229:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "6219:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6302:219:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6316:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6347:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6358:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6343:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6343:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6330:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "6330:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6320:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6410:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6419:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6422:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6412:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6412:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6412:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6382:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6390:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6379:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "6379:30:19" + }, + "nodeType": "YulIf", + "src": "6376:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "6439:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6483:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6494:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6479:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6479:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6503:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6449:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "6449:62:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "6439:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5664:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5675:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5687:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5695:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5703:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5711:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5719:6:19", + "type": "" + } + ], + "src": "5583:945:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6781:1642:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6828:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6837:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6840:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6830:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6830:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6802:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6811:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6798:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6823:3:19", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6794:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6794:33:19" + }, + "nodeType": "YulIf", + "src": "6791:2:19" + }, + { + "nodeType": "YulBlock", + "src": "6854:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6868:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6882:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6872:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6896:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6931:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6942:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6927:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6951:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6906:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6906:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6896:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6979:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6993:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7007:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6997:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7022:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7057:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7068:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7053:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7053:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7077:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7032:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7032:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7022:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7105:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7119:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7133:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7123:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7148:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7181:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7192:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7177:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7201:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "7158:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "7158:51:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7148:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7229:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7243:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7257:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7247:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7272:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7307:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7318:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7303:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7303:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7327:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7282:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7282:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "7272:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7355:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7369:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7383:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7373:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7399:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7434:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7445:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7430:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7430:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7454:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7409:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7409:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "7399:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7482:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7496:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7510:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7500:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7526:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7561:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7572:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7557:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7557:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7581:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7536:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7536:53:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "7526:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7609:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7623:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7637:3:19", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7627:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7653:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7688:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7699:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7684:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7708:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7663:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7663:53:19" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "7653:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7736:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7750:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7781:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7792:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7777:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7764:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7764:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7754:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7844:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7856:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7846:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7846:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7846:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7816:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7824:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7813:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "7813:30:19" + }, + "nodeType": "YulIf", + "src": "7810:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "7873:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7918:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7929:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7914:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7914:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7938:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7883:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "7883:63:19" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "7873:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7966:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7980:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8011:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8022:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8007:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8007:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7994:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7994:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7984:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8074:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8083:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8086:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8076:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8076:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8076:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8046:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8054:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8043:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8043:30:19" + }, + "nodeType": "YulIf", + "src": "8040:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8103:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8148:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8159:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8144:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8144:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8168:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8113:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "8113:63:19" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "8103:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8196:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8210:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8241:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8252:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8237:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8224:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "8224:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8214:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8304:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8316:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8306:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8306:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8306:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8276:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8284:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8273:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8273:30:19" + }, + "nodeType": "YulIf", + "src": "8270:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8333:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8378:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8389:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8374:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8374:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8398:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8343:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "8343:63:19" + }, + "variableNames": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "8333:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6679:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6690:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6702:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6710:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6718:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "6726:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "6734:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "6742:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "6750:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "6758:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "6766:6:19", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "6774:6:19", + "type": "" + } + ], + "src": "6534:1889:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8509:317:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8555:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8564:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8567:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8557:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8557:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8557:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8530:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8539:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8526:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8551:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8522:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8522:32:19" + }, + "nodeType": "YulIf", + "src": "8519:2:19" + }, + { + "nodeType": "YulBlock", + "src": "8581:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8595:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8609:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8599:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8623:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8658:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8669:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8654:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8654:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8678:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8633:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "8633:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8623:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8706:113:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8720:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8734:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8724:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8749:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8781:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8792:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8777:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8801:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "8759:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "8759:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8749:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8471:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8482:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8494:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8502:6:19", + "type": "" + } + ], + "src": "8429:397:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8915:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8961:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8970:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8973:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8963:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8963:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8963:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8936:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8945:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8932:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8932:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8957:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8928:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8928:32:19" + }, + "nodeType": "YulIf", + "src": "8925:2:19" + }, + { + "nodeType": "YulBlock", + "src": "8987:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9001:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9015:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9005:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9029:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9064:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9075:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9060:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9060:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9084:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9039:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9039:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9029:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9112:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9126:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9140:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9130:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9155:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9190:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9201:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9186:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9210:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9165:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9165:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9155:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8877:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8888:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8900:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8908:6:19", + "type": "" + } + ], + "src": "8832:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9341:446:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9387:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9396:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9399:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9389:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9389:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9389:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9362:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9371:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9358:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9358:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9383:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9354:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9354:32:19" + }, + "nodeType": "YulIf", + "src": "9351:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9413:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9427:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9441:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9431:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9455:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9501:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9486:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9510:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9465:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9465:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9455:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9538:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9552:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9566:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9556:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9581:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9616:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9627:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9612:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9612:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9636:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9591:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9591:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9581:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9664:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9678:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9692:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9682:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9707:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9742:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9753:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9738:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9738:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9762:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9717:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9717:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9707:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9295:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9306:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9318:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9326:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9334:6:19", + "type": "" + } + ], + "src": "9241:546:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9874:318:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9920:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9929:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9932:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9922:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9922:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9922:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9895:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9904:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9891:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9891:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9916:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9887:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9887:32:19" + }, + "nodeType": "YulIf", + "src": "9884:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9946:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9960:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9974:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9964:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9988:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10023:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10034:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10019:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10019:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10043:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9998:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9998:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9988:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10071:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10085:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10089:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10114:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10147:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10158:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10143:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10143:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10167:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "10124:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "10124:51:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10114:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9836:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9847:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9859:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9867:6:19", + "type": "" + } + ], + "src": "9793:399:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10428:1515:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10475:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10484:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10487:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10477:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10477:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10477:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10449:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10458:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10445:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10445:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10470:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10441:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10441:33:19" + }, + "nodeType": "YulIf", + "src": "10438:2:19" + }, + { + "nodeType": "YulBlock", + "src": "10501:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10515:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10529:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10519:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10543:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10578:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10589:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10574:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10574:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10598:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10553:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10553:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10543:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10626:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10640:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10654:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10644:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10669:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10702:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10713:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10698:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10698:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10722:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "10679:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "10679:51:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10669:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10750:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10764:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10778:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10768:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10793:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10828:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10839:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10824:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10824:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10848:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10803:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10803:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10793:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10876:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10890:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10904:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10894:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10919:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10954:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10965:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10950:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10950:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10974:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10929:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10929:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10919:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11002:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11016:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11030:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11020:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11046:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11081:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11092:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11077:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11101:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11056:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11056:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "11046:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11129:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11143:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11157:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11147:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11173:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11208:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11219:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11204:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11204:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11228:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11183:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11183:53:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "11173:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11256:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11270:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11301:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11312:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11297:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11297:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11284:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11284:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11274:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11364:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11373:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11376:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11366:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11366:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11366:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11336:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11344:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11333:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11333:30:19" + }, + "nodeType": "YulIf", + "src": "11330:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11393:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11438:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11449:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11434:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11434:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11458:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11403:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11403:63:19" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "11393:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11486:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11500:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11531:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11542:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11527:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11514:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11514:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11504:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11594:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11603:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11606:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11596:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11596:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11596:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11566:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11574:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11563:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11563:30:19" + }, + "nodeType": "YulIf", + "src": "11560:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11623:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11668:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11679:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11664:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11664:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11688:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11633:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11633:63:19" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "11623:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11716:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11730:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11761:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11772:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11757:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11757:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11744:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11744:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11734:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11824:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11833:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11836:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11826:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11826:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11826:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11796:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11804:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11793:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11793:30:19" + }, + "nodeType": "YulIf", + "src": "11790:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11853:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11898:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11909:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11894:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11894:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11918:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11863:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11863:63:19" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "11853:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10334:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10345:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10357:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10365:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10373:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "10381:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "10389:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "10397:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "10405:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "10413:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "10421:6:19", + "type": "" + } + ], + "src": "10198:1745:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12082:556:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12128:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12137:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12140:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12130:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12130:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12130:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12103:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12112:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12099:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12099:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12124:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12095:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12095:32:19" + }, + "nodeType": "YulIf", + "src": "12092:2:19" + }, + { + "nodeType": "YulBlock", + "src": "12154:233:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12168:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12199:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12210:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12195:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12195:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12182:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "12182:31:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12172:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12260:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12269:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12272:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12262:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12262:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12262:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12232:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12240:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12229:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "12229:30:19" + }, + "nodeType": "YulIf", + "src": "12226:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "12289:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12349:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12360:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12345:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12345:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12369:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12299:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "12299:78:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12289:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12397:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12411:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12442:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12453:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12438:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12438:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12425:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "12425:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12415:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12504:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12513:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12516:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12506:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12506:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12506:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12484:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12473:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "12473:30:19" + }, + "nodeType": "YulIf", + "src": "12470:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "12533:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12593:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12604:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12589:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12589:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12613:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12543:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "12543:78:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12533:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12044:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12055:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12067:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12075:6:19", + "type": "" + } + ], + "src": "11949:689:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12707:191:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12753:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12762:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12765:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12755:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12755:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12728:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12737:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12724:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12724:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12749:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12720:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12720:32:19" + }, + "nodeType": "YulIf", + "src": "12717:2:19" + }, + { + "nodeType": "YulBlock", + "src": "12779:112:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12793:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12807:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12797:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12821:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12853:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12864:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12849:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12849:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12873:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "12831:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "12831:50:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12821:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12677:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12688:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12700:6:19", + "type": "" + } + ], + "src": "12644:254:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12970:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13016:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13025:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13028:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13018:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13018:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13018:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12991:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13000:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12987:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13012:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12983:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12983:32:19" + }, + "nodeType": "YulIf", + "src": "12980:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13042:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13056:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13070:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13060:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13084:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13119:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13130:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13115:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13115:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13139:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13094:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13094:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13084:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12940:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12951:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12963:6:19", + "type": "" + } + ], + "src": "12904:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13253:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13299:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13308:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13311:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13301:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13301:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13301:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13274:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13283:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13270:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13295:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13266:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13266:32:19" + }, + "nodeType": "YulIf", + "src": "13263:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13325:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13339:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13353:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13343:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13367:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13402:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13413:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13398:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13398:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13422:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13377:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13377:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13367:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13450:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13464:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13478:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13468:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13493:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13528:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13539:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13524:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13524:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13548:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13503:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13503:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13493:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13215:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13226:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13238:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13246:6:19", + "type": "" + } + ], + "src": "13170:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13662:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13708:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13717:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13720:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13710:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13710:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13710:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13683:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13692:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13679:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13679:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13704:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13675:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13675:32:19" + }, + "nodeType": "YulIf", + "src": "13672:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13734:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13748:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13762:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13752:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13776:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13811:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13822:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13807:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13807:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13831:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13786:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13786:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13776:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13859:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13873:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13887:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13877:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13902:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13937:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13948:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13933:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13933:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13957:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13912:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13912:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13902:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13624:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13635:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13647:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13655:6:19", + "type": "" + } + ], + "src": "13579:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14053:193:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14099:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14108:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14111:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14101:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14101:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14101:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14074:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14083:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14070:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14070:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14095:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14066:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14066:32:19" + }, + "nodeType": "YulIf", + "src": "14063:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14125:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14139:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14153:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14143:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14167:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14201:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14212:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14197:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14197:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14221:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "14177:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "14177:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14167:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14023:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14034:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14046:6:19", + "type": "" + } + ], + "src": "13988:258:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14328:204:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14374:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14383:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14386:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14376:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14376:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14376:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14349:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14358:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14345:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14345:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14370:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14341:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14341:32:19" + }, + "nodeType": "YulIf", + "src": "14338:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14400:125:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14414:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14428:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14418:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14442:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14487:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14498:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14483:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14483:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14507:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "14452:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "14452:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14442:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14298:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14309:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14321:6:19", + "type": "" + } + ], + "src": "14252:280:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14604:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14650:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14659:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14662:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14652:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14652:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14652:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14625:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14634:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14621:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14621:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14646:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14617:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14617:32:19" + }, + "nodeType": "YulIf", + "src": "14614:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14676:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14690:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14704:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14694:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14718:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14753:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14764:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14749:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14749:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14773:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14728:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "14728:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14718:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14574:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14585:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14597:6:19", + "type": "" + } + ], + "src": "14538:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14881:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14927:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14936:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14939:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14929:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14929:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14929:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14902:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14911:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14898:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14898:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14923:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14894:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14894:32:19" + }, + "nodeType": "YulIf", + "src": "14891:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14953:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14995:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15041:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15052:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15037:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15037:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15061:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15005:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "15005:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14995:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14851:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14862:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14874:6:19", + "type": "" + } + ], + "src": "14804:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15175:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15221:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15230:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15233:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15223:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15223:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15223:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15196:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15205:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15192:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15217:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "15188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15188:32:19" + }, + "nodeType": "YulIf", + "src": "15185:2:19" + }, + { + "nodeType": "YulBlock", + "src": "15247:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15261:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15275:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15265:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15289:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15324:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15335:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15320:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15320:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15344:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "15299:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15299:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15289:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15372:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15386:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15400:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15390:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15415:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15450:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15461:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15446:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15446:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15470:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "15425:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15425:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15415:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15137:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "15148:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15160:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15168:6:19", + "type": "" + } + ], + "src": "15092:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15581:99:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15625:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15633:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "15591:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "15591:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15591:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "15646:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15664:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15669:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15660:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15660:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "15646:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15554:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15562:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "15570:10:19", + "type": "" + } + ], + "src": "15501:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15741:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15758:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15781:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "15763:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "15763:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15751:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15751:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15751:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15729:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15736:3:19", + "type": "" + } + ], + "src": "15686:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15865:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15882:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15905:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "15887:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "15887:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15875:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15875:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15875:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15853:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15860:3:19", + "type": "" + } + ], + "src": "15800:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16078:608:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16088:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16150:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16102:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "16102:54:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16092:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16165:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16246:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16251:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16172:73:19" + }, + "nodeType": "YulFunctionCall", + "src": "16172:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16165:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16267:71:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16332:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16282:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "16282:56:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "16271:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16347:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "16361:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "16351:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16437:224:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16451:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16478:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16472:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "16472:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "16455:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16498:70:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "16549:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16564:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "16505:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "16505:63:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16498:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16581:70:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16644:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16591:52:19" + }, + "nodeType": "YulFunctionCall", + "src": "16591:60:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16581:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16399:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16402:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "16396:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "16396:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "16410:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16412:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16421:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16424:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16417:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16417:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16412:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "16381:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16383:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16392:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "16387:1:19", + "type": "" + } + ] + } + ] + }, + "src": "16377:284:19" + }, + { + "nodeType": "YulAssignment", + "src": "16670:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16677:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16670:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16057:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16064:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16073:3:19", + "type": "" + } + ], + "src": "15954:732:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16751:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16768:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16788:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "16773:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "16773:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16761:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16761:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16761:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16739:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16746:3:19", + "type": "" + } + ], + "src": "16692:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16872:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16889:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16912:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "16894:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "16894:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16882:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16882:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16882:37:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16860:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16867:3:19", + "type": "" + } + ], + "src": "16807:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17021:270:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17031:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17077:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17045:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "17045:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17035:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17092:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17157:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17162:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17099:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "17099:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17092:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17204:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17211:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17200:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17200:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17218:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17223:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17178:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17178:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17178:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17239:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17250:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17277:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17255:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17255:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17246:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17246:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17239:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17002:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17009:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17017:3:19", + "type": "" + } + ], + "src": "16931:360:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17379:262:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17389:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17436:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17403:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "17403:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17393:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17451:68:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17507:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17512:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17458:48:19" + }, + "nodeType": "YulFunctionCall", + "src": "17458:61:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17451:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17554:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17561:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17550:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17550:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17568:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17573:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17528:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17528:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17528:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17589:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17600:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17627:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17605:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17605:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17596:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17596:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17589:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17360:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17367:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17375:3:19", + "type": "" + } + ], + "src": "17297:344:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17739:272:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17749:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17796:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17763:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "17763:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17753:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17811:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17877:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17882:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17818:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "17818:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17811:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17924:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17931:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17920:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17920:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17938:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17943:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17898:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17898:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17898:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17959:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17970:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17997:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17975:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17975:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17966:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17966:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17959:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17720:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17727:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17735:3:19", + "type": "" + } + ], + "src": "17647:364:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18130:848:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18140:29:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18163:5:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "18157:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "18157:12:19" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "18144:9:19", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "18218:274:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18264:42:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18286:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18297:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18282:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18282:17:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18301:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18278:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18278:28:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18268:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18385:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18390:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18326:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "18326:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18319:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18417:3:19" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18426:9:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18441:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "18437:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18437:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18422:25:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18410:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18410:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18410:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "18461:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18472:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18477:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18468:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18468:14:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18461:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18211:281:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18216:1:19", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18508:464:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18553:31:19", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18571:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18582:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18567:17:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18557:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18597:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18663:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18668:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18604:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "18604:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18597:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18688:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18735:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "18703:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "18703:38:19" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "18692:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18754:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18763:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "18758:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18821:110:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18850:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18855:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18846:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18846:11:19" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18865:7:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "18859:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "18859:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18839:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18839:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18839:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "18891:26:19", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18906:7:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18915:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18902:15:19" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18891:7:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18788:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18791:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "18785:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "18785:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "18799:21:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18801:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18810:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18813:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18806:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18806:12:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18801:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "18781:3:19", + "statements": [] + }, + "src": "18777:154:19" + }, + { + "nodeType": "YulAssignment", + "src": "18944:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18955:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18960:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18951:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18951:11:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18944:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18501:471:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18506:1:19", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18189:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18200:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18185:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18185:17:19" + }, + "nodeType": "YulSwitch", + "src": "18178:794:19" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18111:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18118:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18126:3:19", + "type": "" + } + ], + "src": "18041:937:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19130:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19140:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19206:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19211:2:19", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19147:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19147:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19140:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19235:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19240:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19231:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19244:34:19", + "type": "", + "value": "ERC1155: transfer to non ERC1155" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19224:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19224:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19224:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19300:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19305:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19296:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19296:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19310:22:19", + "type": "", + "value": "Receiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19289:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19289:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19289:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "19343:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19354:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19359:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19350:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19350:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19343:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19118:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19126:3:19", + "type": "" + } + ], + "src": "18984:384:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19520:239:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19530:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19596:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19601:2:19", + "type": "", + "value": "53" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19537:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19537:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19530:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19625:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19630:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19621:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19621:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19634:34:19", + "type": "", + "value": "CLM8::issueOnBehalf: call must c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19614:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19614:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19614:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19690:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19695:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19686:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19686:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19700:23:19", + "type": "", + "value": "ome from DAO or admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19679:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19679:45:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19679:45:19" + }, + { + "nodeType": "YulAssignment", + "src": "19734:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19745:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19750:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19741:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19741:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19734:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19508:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19516:3:19", + "type": "" + } + ], + "src": "19374:385:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19911:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19921:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19987:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19992:2:19", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19928:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19928:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19921:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20016:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20021:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20012:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20012:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20025:34:19", + "type": "", + "value": "EnumerableSet: index out of boun" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20005:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20005:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20005:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20081:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20086:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20077:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20091:4:19", + "type": "", + "value": "ds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20070:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20070:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20070:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "20106:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20117:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20122:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20113:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20113:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20106:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19899:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19907:3:19", + "type": "" + } + ], + "src": "19765:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20283:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20293:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20359:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20364:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20300:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "20300:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20293:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20388:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20393:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20384:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20384:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20397:34:19", + "type": "", + "value": "ERC1155: ERC1155Receiver rejecte" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20377:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20377:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20377:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20453:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20458:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20449:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20449:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20463:10:19", + "type": "", + "value": "d tokens" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20442:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20442:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20442:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "20484:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20495:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20500:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20491:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20491:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20484:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20271:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20279:3:19", + "type": "" + } + ], + "src": "20137:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20661:233:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20671:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20737:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20742:2:19", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20678:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "20678:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20671:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20766:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20771:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20762:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20775:34:19", + "type": "", + "value": "AccessControl: sender must be an" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20755:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20755:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20831:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20836:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20827:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20827:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20841:17:19", + "type": "", + "value": " admin to grant" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20820:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20820:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20820:39:19" + }, + { + "nodeType": "YulAssignment", + "src": "20869:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20880:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20885:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20876:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20876:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20869:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20649:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20657:3:19", + "type": "" + } + ], + "src": "20515:379:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21046:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21056:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21122:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21127:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21063:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21063:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21056:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21151:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21156:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21147:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21147:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21160:34:19", + "type": "", + "value": "CLM8::onlyDealer: msg.sender not" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21140:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21140:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21140:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21216:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21221:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21212:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21212:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21226:11:19", + "type": "", + "value": " a dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21205:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21205:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21205:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "21248:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21259:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21264:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21255:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21255:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21248:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21034:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21042:3:19", + "type": "" + } + ], + "src": "20900:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21425:229:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21435:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21501:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21506:2:19", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21442:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21442:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21435:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21530:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21535:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21526:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21539:34:19", + "type": "", + "value": "ERC1155: balance query for the z" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21519:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21519:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21519:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21595:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21600:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21591:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21591:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21605:13:19", + "type": "", + "value": "ero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21584:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21584:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21584:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "21629:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21640:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21645:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21636:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21636:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21629:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21413:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21421:3:19", + "type": "" + } + ], + "src": "21279:375:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21806:180:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21816:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21882:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21887:2:19", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21823:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21823:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21816:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21911:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21916:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21907:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21907:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21920:30:19", + "type": "", + "value": "ERC165: invalid interface id" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21900:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21900:51:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21900:51:19" + }, + { + "nodeType": "YulAssignment", + "src": "21961:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21972:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21977:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21968:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21968:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21961:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21794:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21802:3:19", + "type": "" + } + ], + "src": "21660:326:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22138:222:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22148:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22214:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22219:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22155:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22155:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22148:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22243:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22248:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22239:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22239:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22252:34:19", + "type": "", + "value": "CLM8::retire: tokenId does not e" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22232:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22232:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22232:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22308:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22313:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22304:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22304:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22318:6:19", + "type": "", + "value": "xist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22297:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22297:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22297:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "22335:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22346:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22351:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22342:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22342:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22335:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22126:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22134:3:19", + "type": "" + } + ], + "src": "21992:368:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22512:179:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22522:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22588:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22593:2:19", + "type": "", + "value": "27" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22529:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22529:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22522:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22617:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22622:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22613:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22613:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22626:29:19", + "type": "", + "value": "SafeMath: addition overflow" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22606:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22606:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22606:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "22666:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22677:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22682:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22673:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22666:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22500:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22508:3:19", + "type": "" + } + ], + "src": "22366:325:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22843:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22853:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22919:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22924:2:19", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22860:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22860:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22853:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22948:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22953:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22944:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22944:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22957:34:19", + "type": "", + "value": "CLM8::mint: tokenId does not exi" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22937:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22937:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22937:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23013:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23018:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23009:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23009:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23023:4:19", + "type": "", + "value": "st" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23002:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23002:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23002:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "23038:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23049:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23054:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23045:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23045:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23038:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22831:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22839:3:19", + "type": "" + } + ], + "src": "22697:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23215:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23225:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23291:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23296:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23232:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23232:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23225:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23320:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23325:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23316:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23316:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23329:34:19", + "type": "", + "value": "CLM8::unregisterDealer: tokenTyp" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23309:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23309:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23309:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23385:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23390:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23381:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23395:20:19", + "type": "", + "value": "eId does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23374:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23374:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23374:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "23426:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23437:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23442:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23433:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23433:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23426:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23203:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23211:3:19", + "type": "" + } + ], + "src": "23069:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23603:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23613:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23679:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23684:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23620:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23620:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23613:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23708:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23713:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23704:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23704:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23717:34:19", + "type": "", + "value": "ERC1155: caller is not owner nor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23697:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23697:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23697:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23773:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23778:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23769:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23769:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23783:11:19", + "type": "", + "value": " approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23762:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23762:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23762:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "23805:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23816:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23821:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23812:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23805:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23591:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23599:3:19", + "type": "" + } + ], + "src": "23457:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23982:290:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23992:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24063:2:19", + "type": "", + "value": "70" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23999:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23999:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23992:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24087:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24092:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24083:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24096:34:19", + "type": "", + "value": "CLM8::unregisterConsumer(limited" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24076:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24076:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24076:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24152:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24157:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24148:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24162:34:19", + "type": "", + "value": "): only admin can unregister con" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24141:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24141:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24141:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24218:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24223:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24214:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24214:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24228:8:19", + "type": "", + "value": "sumers" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24207:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24207:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24207:30:19" + }, + { + "nodeType": "YulAssignment", + "src": "24247:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24258:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24263:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24254:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24254:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24247:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23970:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23978:3:19", + "type": "" + } + ], + "src": "23836:436:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24424:228:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24434:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24500:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24505:2:19", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24441:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24441:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24434:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24529:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24534:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24525:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24525:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24538:34:19", + "type": "", + "value": "CLM8::getTokenType: tokenId does" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24518:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24518:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24518:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24594:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24599:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24590:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24590:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24604:12:19", + "type": "", + "value": " not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24583:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24583:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24583:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "24627:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24638:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24643:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24634:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24634:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24627:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24412:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24420:3:19", + "type": "" + } + ], + "src": "24278:374:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24804:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24814:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24880:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24885:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24821:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24821:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24814:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24909:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24914:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24905:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24905:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24918:34:19", + "type": "", + "value": "CLM8::onlyAdmin: msg.sender not " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24898:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24898:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24898:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24974:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24979:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24970:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24970:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24984:11:19", + "type": "", + "value": "the admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24963:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24963:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24963:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "25006:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25017:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25022:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25013:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25013:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25006:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24792:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24800:3:19", + "type": "" + } + ], + "src": "24658:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25183:237:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25193:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25259:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25264:2:19", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25200:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25200:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25193:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25288:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25293:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25284:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25284:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25297:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25277:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25277:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25277:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25353:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25358:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25349:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25349:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25363:21:19", + "type": "", + "value": "tered offset dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25342:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25342:43:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25342:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "25395:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25406:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25411:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25402:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25395:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25171:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25179:3:19", + "type": "" + } + ], + "src": "25037:383:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25572:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25582:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25648:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25653:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25589:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25589:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25582:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25677:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25682:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25673:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25686:34:19", + "type": "", + "value": "AccessControl: sender must be an" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25666:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25666:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25666:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25742:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25747:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25738:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25738:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25752:18:19", + "type": "", + "value": " admin to revoke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25731:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25731:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25731:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "25781:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25792:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25797:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25788:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25788:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25781:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25560:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25568:3:19", + "type": "" + } + ], + "src": "25426:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25958:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25968:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26034:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26039:2:19", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25975:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25975:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25968:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26063:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26068:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26059:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26059:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26072:34:19", + "type": "", + "value": "CLM8::retire: not enough availab" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26052:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26052:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26052:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26128:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26133:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26124:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26124:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26138:22:19", + "type": "", + "value": "le balance to retire" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26117:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26117:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26117:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "26171:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26182:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26187:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26178:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26178:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26171:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25946:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25954:3:19", + "type": "" + } + ], + "src": "25812:384:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26348:241:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26358:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26424:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26429:2:19", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26365:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26365:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26358:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26453:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26458:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26449:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26449:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26462:34:19", + "type": "", + "value": "CLM8::_issue(limited): proposer " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26442:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26442:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26442:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26518:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26523:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26514:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26514:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26528:25:19", + "type": "", + "value": "not a registered dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26507:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26507:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26507:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "26564:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26575:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26580:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26571:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26571:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26564:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26336:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26344:3:19", + "type": "" + } + ], + "src": "26202:387:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26741:223:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26751:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26817:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26822:2:19", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26758:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26758:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26751:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26846:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26851:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26842:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26842:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26855:34:19", + "type": "", + "value": "ERC1155: transfer to the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26835:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26835:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26835:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26911:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26916:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26907:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26907:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26921:7:19", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26900:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26900:29:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26900:29:19" + }, + { + "nodeType": "YulAssignment", + "src": "26939:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26950:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26955:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26946:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26946:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26939:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26729:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26737:3:19", + "type": "" + } + ], + "src": "26595:369:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27116:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27126:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27192:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27197:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27133:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27133:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27126:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27221:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27226:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27217:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27217:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27230:34:19", + "type": "", + "value": "ERC1155: transfer caller is not " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27210:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27210:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27210:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27286:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27291:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27282:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27282:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27296:20:19", + "type": "", + "value": "owner nor approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27275:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27275:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27275:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "27327:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27338:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27343:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27334:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27334:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27327:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27104:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27112:3:19", + "type": "" + } + ], + "src": "26970:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27504:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27514:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27580:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27585:2:19", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27521:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27521:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27514:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27609:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27614:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27605:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27605:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27618:34:19", + "type": "", + "value": "Initializable: contract is alrea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27598:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27598:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27598:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27674:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27679:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27670:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27670:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27684:16:19", + "type": "", + "value": "dy initialized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27663:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27663:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27663:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "27711:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27722:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27727:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27718:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27718:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27711:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27492:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27500:3:19", + "type": "" + } + ], + "src": "27358:378:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27888:221:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27898:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27964:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27969:2:19", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27905:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27905:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27898:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27993:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27998:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27989:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27989:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28002:34:19", + "type": "", + "value": "ERC1155: burn from the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27982:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27982:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27982:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28063:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28054:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28068:5:19", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28047:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28047:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28047:27:19" + }, + { + "nodeType": "YulAssignment", + "src": "28084:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28095:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28100:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28091:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28091:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28084:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27876:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27884:3:19", + "type": "" + } + ], + "src": "27742:367:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28261:240:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28271:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28337:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28342:2:19", + "type": "", + "value": "54" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28278:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28278:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28271:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28366:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28371:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28362:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28362:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28375:34:19", + "type": "", + "value": "CLM8::transfer: sender and recei" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28355:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28355:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28355:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28431:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28436:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28427:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28427:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28441:24:19", + "type": "", + "value": "ver cannot be the same" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28420:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28420:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28420:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "28476:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28487:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28492:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28483:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28483:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28476:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28249:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28257:3:19", + "type": "" + } + ], + "src": "28115:386:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28653:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28663:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28729:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28734:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28670:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28670:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28663:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28758:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28763:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28754:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28754:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28767:34:19", + "type": "", + "value": "CLM8::mint: cannot mint new toke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28747:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28747:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28747:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28823:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28828:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28819:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28819:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28833:20:19", + "type": "", + "value": "ns in limited mode" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28812:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28812:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28812:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "28864:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28875:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28880:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28871:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28871:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28864:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28641:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28649:3:19", + "type": "" + } + ], + "src": "28507:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29041:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29051:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29117:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29122:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29058:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29058:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29051:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29146:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29151:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29142:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29142:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29155:34:19", + "type": "", + "value": "CLM8::registerDealer: tokenTypeI" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29135:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29135:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29135:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29211:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29216:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29207:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29207:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29221:18:19", + "type": "", + "value": "d does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29200:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29200:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29200:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "29250:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29261:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29266:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29257:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29257:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29250:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29029:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29037:3:19", + "type": "" + } + ], + "src": "28895:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29427:224:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29437:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29503:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29508:2:19", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29444:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29444:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29437:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29532:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29537:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29528:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29541:34:19", + "type": "", + "value": "CLM8::transfer: tokenId does not" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29521:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29521:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29521:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29597:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29602:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29593:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29593:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29607:8:19", + "type": "", + "value": " exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29586:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29586:30:19" + }, + { + "nodeType": "YulAssignment", + "src": "29626:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29637:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29642:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29633:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29633:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29626:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29415:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29423:3:19", + "type": "" + } + ], + "src": "29281:370:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29803:286:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29813:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29879:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29884:2:19", + "type": "", + "value": "66" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29820:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29820:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29813:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29908:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29913:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29904:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29904:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29917:34:19", + "type": "", + "value": "CLM8::registerConsumer(limited):" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29897:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29897:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29897:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29973:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29978:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29969:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29969:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29983:34:19", + "type": "", + "value": " only admin can register consume" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29962:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29962:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29962:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30039:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30044:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30035:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30035:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30049:4:19", + "type": "", + "value": "rs" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30028:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30028:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30028:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "30064:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30075:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30080:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30071:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30071:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30064:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29791:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29799:3:19", + "type": "" + } + ], + "src": "29657:432:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30241:241:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30251:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30317:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30322:2:19", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30258:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30258:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30251:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30346:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30351:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30342:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30342:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30355:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30335:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30335:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30335:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30411:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30416:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30407:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30407:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30421:25:19", + "type": "", + "value": "tered emissions auditor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30400:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30400:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30400:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "30457:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30468:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30473:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30464:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30464:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30457:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30229:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30237:3:19", + "type": "" + } + ], + "src": "30095:387:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30634:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30644:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30710:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30715:2:19", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30651:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30651:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30644:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30739:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30744:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30735:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30735:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30748:34:19", + "type": "", + "value": "CLM8::_issue(limited): msg.sende" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30728:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30728:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30728:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30804:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30809:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30800:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30800:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30814:16:19", + "type": "", + "value": "r not timelock" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30793:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30793:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30793:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "30841:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30852:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30857:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30848:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30848:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30841:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30622:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30630:3:19", + "type": "" + } + ], + "src": "30488:378:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31018:237:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31028:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31094:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31099:2:19", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31035:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31035:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31028:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31123:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31128:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31119:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31119:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31132:34:19", + "type": "", + "value": "CLM8::getTokenRetiredAmount: tok" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31112:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31112:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31112:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31188:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31193:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31184:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31184:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31198:21:19", + "type": "", + "value": "enId does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31177:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31177:43:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31177:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "31230:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31241:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31246:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31237:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31230:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31006:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31014:3:19", + "type": "" + } + ], + "src": "30872:383:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31407:308:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31417:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31483:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31488:2:19", + "type": "", + "value": "88" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31424:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31424:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31417:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31512:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31517:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31508:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31508:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31521:34:19", + "type": "", + "value": "CLM8::_beforeTokenTransfer(limit" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31501:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31501:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31501:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31577:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31582:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31573:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31573:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31587:34:19", + "type": "", + "value": "ed): only emissions auditors can" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31566:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31566:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31566:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31643:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31648:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31639:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31639:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31653:26:19", + "type": "", + "value": " issue audited emissions" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31632:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31632:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31632:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "31690:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31701:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31706:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31697:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31697:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31690:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31395:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31403:3:19", + "type": "" + } + ], + "src": "31261:454:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31867:250:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31877:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31943:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31948:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31884:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31884:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31877:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31972:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31977:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31968:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31968:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31981:34:19", + "type": "", + "value": "CLM8::_issue(limited): issuer no" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31961:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31961:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31961:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32037:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32042:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32033:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32033:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32047:34:19", + "type": "", + "value": "t a registered emissions auditor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32026:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32026:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32026:56:19" + }, + { + "nodeType": "YulAssignment", + "src": "32092:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32103:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32108:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32099:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32099:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32092:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31855:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31863:3:19", + "type": "" + } + ], + "src": "31721:396:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32269:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32279:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32345:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32350:2:19", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32286:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "32286:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32279:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32374:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32379:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32370:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32370:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32383:34:19", + "type": "", + "value": "CLM8::_issue(limited): issuee no" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32363:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32363:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32363:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32439:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32444:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32435:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32435:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32449:9:19", + "type": "", + "value": "t admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32428:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32428:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32428:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "32469:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32480:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32485:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32476:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32476:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32469:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32257:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32265:3:19", + "type": "" + } + ], + "src": "32123:371:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32646:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32656:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32722:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32727:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32663:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "32663:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32656:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32751:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32756:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32747:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32747:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32760:34:19", + "type": "", + "value": "ERC1155: setting approval status" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32740:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32740:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32740:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32816:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32821:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32812:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32826:11:19", + "type": "", + "value": " for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32805:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32805:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "32848:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32859:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32864:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32855:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32855:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32848:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32634:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32642:3:19", + "type": "" + } + ], + "src": "32500:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33025:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33035:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33101:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33106:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33042:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33042:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33035:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33130:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33135:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33126:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33126:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33139:34:19", + "type": "", + "value": "ERC1155: accounts and ids length" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33119:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33119:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33119:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33195:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33200:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33191:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33191:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33205:11:19", + "type": "", + "value": " mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33184:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33184:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33184:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "33227:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33238:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33243:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33234:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33234:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33227:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33013:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33021:3:19", + "type": "" + } + ], + "src": "32879:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33404:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33414:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33480:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33485:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33421:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33421:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33414:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33509:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33514:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33505:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33518:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33498:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33498:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33498:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33574:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33579:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33570:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33570:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33584:18:19", + "type": "", + "value": "tered REC dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33563:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33563:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33563:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "33613:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33624:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33629:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33620:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33620:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33613:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33392:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33400:3:19", + "type": "" + } + ], + "src": "33258:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33790:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33800:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33866:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33871:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33807:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33807:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33800:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33895:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33900:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33891:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33891:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33904:34:19", + "type": "", + "value": "ERC1155: ids and amounts length " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33884:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33884:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33884:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33960:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33965:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33956:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33970:10:19", + "type": "", + "value": "mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33949:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33949:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33949:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "33991:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34002:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34007:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33998:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33991:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33778:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33786:3:19", + "type": "" + } + ], + "src": "33644:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34168:219:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34178:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34244:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34249:2:19", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34185:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34185:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34178:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34273:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34278:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34269:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34269:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34282:34:19", + "type": "", + "value": "ERC1155: mint to the zero addres" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34262:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34262:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34262:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34338:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34343:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34334:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34334:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34348:3:19", + "type": "", + "value": "s" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34327:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34327:25:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34327:25:19" + }, + { + "nodeType": "YulAssignment", + "src": "34362:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34373:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34378:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34369:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34369:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34362:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34156:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34164:3:19", + "type": "" + } + ], + "src": "34022:365:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34539:247:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34549:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34615:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34620:2:19", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34556:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34556:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34549:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34644:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34649:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34640:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34640:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34653:34:19", + "type": "", + "value": "CLM8::consumerOrDealer: msg.send" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34633:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34633:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34633:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34709:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34714:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34705:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34705:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34719:31:19", + "type": "", + "value": "er not a consumer or a dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34698:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34698:53:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34698:53:19" + }, + { + "nodeType": "YulAssignment", + "src": "34761:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34772:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34777:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34768:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34768:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34761:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34527:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34535:3:19", + "type": "" + } + ], + "src": "34393:393:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34938:222:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34948:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35014:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35019:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34955:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34955:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34948:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35043:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35048:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35039:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35039:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35052:34:19", + "type": "", + "value": "CLM8::_issue: tokenTypeId is inv" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35032:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35032:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35032:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35108:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35113:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35104:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35104:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35118:6:19", + "type": "", + "value": "alid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35097:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35097:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35097:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "35135:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35146:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35151:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35142:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35142:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35135:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34926:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34934:3:19", + "type": "" + } + ], + "src": "34792:368:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35312:233:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35322:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35388:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35393:2:19", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35329:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "35329:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35322:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35417:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35422:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35413:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35413:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35426:34:19", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35406:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35406:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35406:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35482:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35487:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35478:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35478:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35492:17:19", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35471:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35471:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35471:39:19" + }, + { + "nodeType": "YulAssignment", + "src": "35520:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35531:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35536:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35527:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35520:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35300:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35308:3:19", + "type": "" + } + ], + "src": "35166:379:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35697:295:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35707:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35773:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35778:2:19", + "type": "", + "value": "75" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35714:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "35714:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35707:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35802:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35807:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35798:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35811:34:19", + "type": "", + "value": "CLM8::_beforeTokenTransfer(limit" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35791:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35791:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35791:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35867:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35872:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35863:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35863:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35877:34:19", + "type": "", + "value": "ed): only admin and DAO can tran" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35856:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35856:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35856:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35933:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35938:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35929:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35929:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35943:13:19", + "type": "", + "value": "sfer tokens" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35922:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35922:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35922:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "35967:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35978:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35983:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35974:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35974:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35967:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35685:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35693:3:19", + "type": "" + } + ], + "src": "35551:441:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36256:2259:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36266:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36282:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36287:6:19", + "type": "", + "value": "0x0160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36278:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36278:16:19" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36270:4:19", + "type": "" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36304:167:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36342:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36372:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36379:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36368:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36368:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36362:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36362:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36346:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36432:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36450:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36455:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36446:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36446:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "36398:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36398:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36398:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36481:167:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36523:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36553:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36560:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36549:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36549:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36543:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36543:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36527:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36609:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36627:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36632:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36623:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36623:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "36579:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "36579:59:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36579:59:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36658:166:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36695:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36725:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36732:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36721:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36721:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36715:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36715:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36699:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36785:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36803:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36808:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36799:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36799:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "36751:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36751:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36751:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36834:166:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36871:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36901:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36908:4:19", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36897:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36897:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36891:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36891:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36875:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36961:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36979:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36984:4:19", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36975:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36975:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "36927:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36927:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36927:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37010:168:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37049:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37079:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37086:4:19", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37075:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37075:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37069:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37069:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37053:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37139:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37157:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37162:4:19", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37153:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37153:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37105:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37105:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37105:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37188:168:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37227:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37257:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37264:4:19", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37253:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37253:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37247:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37247:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37231:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37317:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37335:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37340:4:19", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37331:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37331:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37283:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37283:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37283:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37366:171:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37408:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37438:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37445:4:19", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37434:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37434:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37428:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37428:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37412:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37498:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37516:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37521:4:19", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37512:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37464:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37464:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37464:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37547:179:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37597:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37627:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37634:4:19", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37623:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37623:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37617:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37617:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37601:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37687:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37705:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37710:4:19", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37701:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37701:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37653:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37653:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37653:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37736:243:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37775:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37805:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37812:6:19", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37801:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37801:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37795:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37795:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37779:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37845:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37850:6:19", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37841:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37841:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37863:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37869:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37859:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37859:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37834:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37834:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37834:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "37887:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37949:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37963:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "37895:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "37895:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37887:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37989:243:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38028:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38058:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38065:6:19", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38054:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38048:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "38048:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "38032:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38098:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38103:6:19", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38094:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38094:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38116:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38122:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38112:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38112:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38087:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38087:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38087:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "38140:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "38202:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38216:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38148:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "38148:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38140:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "38242:246:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38284:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38314:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38321:6:19", + "type": "", + "value": "0x0140" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38310:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38310:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38304:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "38304:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "38288:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38354:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38359:6:19", + "type": "", + "value": "0x0140" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38350:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38350:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38372:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38378:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38368:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38368:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38343:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38343:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38343:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "38396:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "38458:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38472:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38404:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "38404:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38396:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38498:11:19", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38505:4:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38498:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_CarbonTokenDetails_$6250_memory_ptr_to_t_struct$_CarbonTokenDetails_$6250_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36235:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36242:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36251:3:19", + "type": "" + } + ], + "src": "36110:2405:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38576:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38593:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38616:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38598:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38598:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38586:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38586:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38564:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38571:3:19", + "type": "" + } + ], + "src": "38521:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38700:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38717:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38740:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38722:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38722:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38710:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38710:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38710:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38688:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38695:3:19", + "type": "" + } + ], + "src": "38635:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38810:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38827:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38848:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "38832:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "38832:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38820:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38820:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38820:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38798:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38805:3:19", + "type": "" + } + ], + "src": "38759:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38928:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38945:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38966:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "38950:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "38950:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38938:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38938:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38938:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38916:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38923:3:19", + "type": "" + } + ], + "src": "38867:112:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39083:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39093:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39105:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39116:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39101:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39101:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39093:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39173:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39186:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39182:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39182:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39129:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39129:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39129:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39055:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39067:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39078:4:19", + "type": "" + } + ], + "src": "38985:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39541:725:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39551:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39563:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39574:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39559:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39559:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39551:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39632:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39645:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39656:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39641:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39641:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39588:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39588:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39588:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "39713:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39726:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39737:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39722:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39722:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39669:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39669:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39669:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39762:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39773:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39758:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39758:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39782:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39788:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39778:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39778:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39751:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39751:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39751:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "39808:116:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "39910:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39919:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39816:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "39816:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39808:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39945:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39956:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39941:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39941:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39965:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39971:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39961:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39961:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39934:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39934:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39934:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "39991:116:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "40093:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40102:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39999:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "39999:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39991:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40128:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40139:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40124:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40124:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40149:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40155:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40145:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40145:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40117:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40117:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40117:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "40175:84:19", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "40245:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40254:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40183:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "40183:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40175:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39481:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "39493:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "39501:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "39509:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "39517:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39525:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39536:4:19", + "type": "" + } + ], + "src": "39213:1053:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40500:523:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40510:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40522:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40533:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40518:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40518:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40510:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "40591:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40604:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40615:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40600:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40600:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "40547:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40547:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40547:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "40672:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40685:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40696:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40681:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40681:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "40628:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40628:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40628:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "40754:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40767:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40778:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40763:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40763:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "40710:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40710:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40710:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "40836:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40849:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40860:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40845:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40845:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "40792:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40792:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40792:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40885:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40896:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40881:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40881:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40906:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40912:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40902:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40874:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40874:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40874:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "40932:84:19", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "41002:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41011:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40940:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "40940:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40932:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "40440:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "40452:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "40460:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "40468:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "40476:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40484:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40495:4:19", + "type": "" + } + ], + "src": "40272:751:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41155:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41165:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41177:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41188:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41173:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41173:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41165:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41245:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41258:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41269:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41254:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41254:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "41201:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "41201:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41201:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "41326:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41339:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41350:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41335:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41335:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "41282:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "41282:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41282:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41119:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "41131:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41139:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41150:4:19", + "type": "" + } + ], + "src": "41029:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41515:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41525:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41537:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41548:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41533:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41533:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41525:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41572:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41583:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41568:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41568:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41591:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41597:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "41587:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41587:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41561:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "41561:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41561:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "41617:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41719:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41728:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41625:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "41625:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41617:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41487:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41499:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41510:4:19", + "type": "" + } + ], + "src": "41367:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41972:408:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41982:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41994:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42005:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41990:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41990:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41982:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42029:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42040:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42025:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42025:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42048:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42054:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42044:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42044:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42018:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42018:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42018:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "42074:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42176:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42185:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42082:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "42082:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42074:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42211:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42222:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42207:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42207:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42231:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42237:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42227:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42227:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42200:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42200:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42200:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "42257:116:19", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "42359:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42368:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42265:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "42265:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42257:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41936:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "41948:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41956:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41967:4:19", + "type": "" + } + ], + "src": "41746:634:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42478:118:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42488:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42500:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42511:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42496:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42496:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42488:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42562:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42575:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42586:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42571:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42571:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42524:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42524:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42524:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42450:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "42462:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42473:4:19", + "type": "" + } + ], + "src": "42386:210:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42782:424:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42792:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42804:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42815:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42800:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42800:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42792:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42867:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42880:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42891:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42876:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42876:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42829:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42829:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42829:65:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "42942:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42955:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42966:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42951:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42951:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42904:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42904:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42904:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "43018:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43031:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43042:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43027:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43027:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42980:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42980:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42980:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "43094:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43107:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43118:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43103:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43103:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "43056:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "43056:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43056:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "43170:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43183:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43194:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43179:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43179:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "43132:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "43132:67:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43132:67:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool_t_bool_t_bool_t_bool_t_bool__to_t_bool_t_bool_t_bool_t_bool_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42722:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "42734:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "42742:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "42750:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "42758:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "42766:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42777:4:19", + "type": "" + } + ], + "src": "42602:604:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43310:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43320:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43332:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43343:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43328:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43328:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43320:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43400:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43413:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43424:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43409:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43409:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "43356:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "43356:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43356:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43282:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43294:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43305:4:19", + "type": "" + } + ], + "src": "43212:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43558:195:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43568:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43580:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43591:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43576:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43576:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43568:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43615:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43626:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43611:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43611:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43634:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43640:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "43630:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43630:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43604:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43604:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43604:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "43660:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43732:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43741:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "43668:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "43668:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43660:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43530:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43542:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43553:4:19", + "type": "" + } + ], + "src": "43440:313:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43930:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43940:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43952:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43963:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43948:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43948:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43940:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43987:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43998:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43983:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43983:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44006:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44012:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44002:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44002:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43976:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43976:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43976:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44032:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44166:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44040:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44040:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44032:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43910:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43925:4:19", + "type": "" + } + ], + "src": "43759:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44355:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44365:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44377:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44388:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44373:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44373:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44365:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44412:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44423:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44408:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44408:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44431:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44437:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44427:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44427:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44401:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44401:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44401:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44457:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44591:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44465:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44465:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44457:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44335:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44350:4:19", + "type": "" + } + ], + "src": "44184:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44780:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44790:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44802:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44813:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44798:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44790:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44837:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44848:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44833:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44833:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44856:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44862:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44852:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44852:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44826:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44826:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44826:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44882:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45016:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44890:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44890:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44882:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44760:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44775:4:19", + "type": "" + } + ], + "src": "44609:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45205:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45215:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45227:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45238:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45223:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45223:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45215:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45262:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45273:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45258:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45281:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45287:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45277:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45277:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45251:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45251:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45251:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45307:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45441:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45315:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45315:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45307:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45185:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45200:4:19", + "type": "" + } + ], + "src": "45034:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45630:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45640:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45652:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45663:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45648:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45648:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45640:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45687:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45698:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45683:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45683:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45706:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45712:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45702:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45702:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45676:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45676:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45676:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45732:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45866:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45740:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45740:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45732:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45610:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45625:4:19", + "type": "" + } + ], + "src": "45459:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46055:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46065:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46077:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46088:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46073:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46073:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46065:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46112:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46123:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46108:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46108:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46131:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46137:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46127:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46127:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46101:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46101:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46101:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46157:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46291:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46165:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46165:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46157:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46035:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46050:4:19", + "type": "" + } + ], + "src": "45884:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46480:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46490:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46502:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46513:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46498:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46498:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46490:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46537:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46548:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46533:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46533:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46556:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46562:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46552:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46552:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46526:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46526:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46526:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46582:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46716:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46590:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46590:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46582:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46460:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46475:4:19", + "type": "" + } + ], + "src": "46309:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46905:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46915:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46927:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46938:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46923:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46923:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46915:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46962:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46973:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46958:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46958:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46981:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46987:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46977:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46977:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46951:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46951:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46951:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47007:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47141:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47015:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47015:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47007:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46885:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46900:4:19", + "type": "" + } + ], + "src": "46734:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47330:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47340:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47352:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47363:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47348:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47348:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47340:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47387:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47398:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47383:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47383:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47406:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47412:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47402:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47376:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47376:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47376:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47432:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47566:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47440:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47440:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47432:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47310:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47325:4:19", + "type": "" + } + ], + "src": "47159:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47755:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47765:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47777:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47788:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47773:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47773:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47765:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47812:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47823:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47808:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47808:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47831:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47837:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47827:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47827:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47801:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47801:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47801:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47857:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47991:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47865:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47865:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47857:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47735:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47750:4:19", + "type": "" + } + ], + "src": "47584:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48180:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48190:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48202:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48213:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48198:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48198:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48190:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48237:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48248:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48233:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48233:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48256:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48262:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48252:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48252:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48226:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48226:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48226:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48282:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48416:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48290:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48290:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48282:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48160:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48175:4:19", + "type": "" + } + ], + "src": "48009:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48605:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48615:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48627:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48638:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48623:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48623:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48615:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48662:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48673:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48658:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48658:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48681:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48687:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48677:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48677:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48651:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48651:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48651:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48707:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48841:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48715:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48715:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48707:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48585:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48600:4:19", + "type": "" + } + ], + "src": "48434:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49030:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49040:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49052:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49063:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49048:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49048:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49040:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49087:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49098:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49083:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49106:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49112:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49102:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49102:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49076:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49076:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49076:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49132:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49266:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49140:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49140:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49132:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49010:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49025:4:19", + "type": "" + } + ], + "src": "48859:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49455:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49465:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49477:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49488:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49473:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49473:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49465:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49512:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49523:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49508:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49508:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49531:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49537:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49527:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49501:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49501:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49501:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49557:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49691:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49565:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49565:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49557:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49435:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49450:4:19", + "type": "" + } + ], + "src": "49284:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49880:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49890:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49902:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49913:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49898:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49898:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49890:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49937:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49948:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49933:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49933:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49956:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49962:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49952:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49952:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49926:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49926:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49926:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49982:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50116:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49990:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49990:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49982:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49860:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49875:4:19", + "type": "" + } + ], + "src": "49709:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50305:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50315:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50327:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50338:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50323:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50323:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50315:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50362:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50373:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50358:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50358:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50381:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50387:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50377:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50377:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50351:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50351:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50351:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50407:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50541:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50415:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50415:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50407:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50285:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50300:4:19", + "type": "" + } + ], + "src": "50134:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50730:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50740:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50752:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50763:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50748:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50748:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50740:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50787:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50798:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50783:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50783:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50806:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50812:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50802:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50802:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50776:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50776:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50776:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50832:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50966:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50840:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50840:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50832:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50710:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50725:4:19", + "type": "" + } + ], + "src": "50559:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51155:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51165:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51177:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51188:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51173:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51173:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51165:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51212:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51223:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51208:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51208:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51231:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51237:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51227:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51227:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51201:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51201:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51201:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51257:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51391:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51265:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51265:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51257:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51135:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51150:4:19", + "type": "" + } + ], + "src": "50984:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51580:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51590:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51602:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51613:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51598:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51598:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51590:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51637:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51648:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51633:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51633:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51656:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51662:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51652:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51652:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51626:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51626:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51626:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51682:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51816:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51690:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51690:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51682:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51560:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51575:4:19", + "type": "" + } + ], + "src": "51409:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52005:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52015:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52027:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52038:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52023:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52023:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52015:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52062:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52073:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52058:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52058:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52081:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52087:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52077:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52051:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52051:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52051:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52107:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52241:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52115:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52115:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52107:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51985:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52000:4:19", + "type": "" + } + ], + "src": "51834:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52430:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52440:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52452:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52463:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52448:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52448:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52440:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52487:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52498:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52483:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52483:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52506:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52512:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52502:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52502:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52476:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52476:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52476:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52532:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52666:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52540:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52540:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52532:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52410:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52425:4:19", + "type": "" + } + ], + "src": "52259:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52855:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52865:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52877:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52888:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52873:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52873:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52865:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52912:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52923:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52908:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52908:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52931:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52937:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52927:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52901:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52901:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52901:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52957:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53091:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52965:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52965:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52957:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52835:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52850:4:19", + "type": "" + } + ], + "src": "52684:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "53280:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "53290:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53302:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53313:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53298:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53298:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53290:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53337:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53348:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53333:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53333:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53356:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53362:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53352:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53326:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53326:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53326:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "53382:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53516:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53390:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "53390:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53382:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "53260:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "53275:4:19", + "type": "" + } + ], + "src": "53109:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "53705:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "53715:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53727:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53738:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53723:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53723:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53715:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53762:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53773:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53758:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53758:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53781:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53787:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53777:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53751:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53751:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53751:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "53807:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53941:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53815:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "53815:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53807:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "53685:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "53700:4:19", + "type": "" + } + ], + "src": "53534:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54130:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54140:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54152:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54163:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54148:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54140:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54187:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54198:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54183:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54183:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54206:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54212:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "54202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54202:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "54176:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "54176:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54176:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "54232:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54366:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "54240:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "54240:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54232:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54110:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54125:4:19", + "type": "" + } + ], + "src": "53959:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54555:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54565:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54577:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54588:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54573:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54573:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54565:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54612:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54623:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54608:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54608:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54631:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54637:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "54627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54627:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "54601:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "54601:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54601:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "54657:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54791:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "54665:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "54665:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54657:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54535:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54550:4:19", + "type": "" + } + ], + "src": "54384:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54980:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54990:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55002:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55013:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54998:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54990:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55037:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55048:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55033:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55033:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55056:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55062:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55052:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55026:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55026:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55026:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55082:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55216:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55090:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55090:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55082:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54960:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54975:4:19", + "type": "" + } + ], + "src": "54809:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "55405:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "55415:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55427:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55438:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55423:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55423:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55415:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55462:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55473:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55458:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55458:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55481:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55487:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55477:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55451:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55451:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55451:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55507:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55641:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55515:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55515:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55507:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "55385:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "55400:4:19", + "type": "" + } + ], + "src": "55234:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "55830:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "55840:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55852:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55863:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55848:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55848:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55840:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55887:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55898:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55883:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55883:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55906:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55912:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55902:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55876:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55876:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55876:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55932:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56066:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55940:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55940:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55932:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "55810:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "55825:4:19", + "type": "" + } + ], + "src": "55659:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56255:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "56265:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56277:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56288:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56273:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56273:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56265:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56312:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56323:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56308:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56308:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56331:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56337:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "56327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56327:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "56301:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "56301:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56301:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "56357:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56491:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "56365:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "56365:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56357:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "56235:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "56250:4:19", + "type": "" + } + ], + "src": "56084:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56680:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "56690:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56702:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56713:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56698:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56698:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56690:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56737:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56748:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56733:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56733:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56756:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56762:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "56752:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56752:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "56726:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "56726:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56726:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "56782:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56916:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "56790:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "56790:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56782:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "56660:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "56675:4:19", + "type": "" + } + ], + "src": "56509:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57105:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57115:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57127:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57138:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57123:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57123:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57115:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57162:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57173:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57158:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57158:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57181:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57187:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "57177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57177:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "57151:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "57151:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57151:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "57207:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57341:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "57215:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "57215:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57207:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57085:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57100:4:19", + "type": "" + } + ], + "src": "56934:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57530:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57540:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57552:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57563:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57548:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57548:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57540:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57587:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57598:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57583:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57583:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57606:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57612:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "57602:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57602:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "57576:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "57576:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57576:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "57632:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57766:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "57640:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "57640:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57632:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57510:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57525:4:19", + "type": "" + } + ], + "src": "57359:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57955:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57965:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57977:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57988:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57973:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57973:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57965:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58012:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58023:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58008:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58008:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58031:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58037:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58027:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58027:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58001:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58001:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58001:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58057:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58191:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58065:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58065:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58057:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57935:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57950:4:19", + "type": "" + } + ], + "src": "57784:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58380:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58390:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58402:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58413:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58398:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58398:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58390:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58437:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58448:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58433:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58433:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58456:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58462:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58452:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58452:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58426:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58426:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58426:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58482:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58616:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58490:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58490:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58482:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "58360:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "58375:4:19", + "type": "" + } + ], + "src": "58209:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58805:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58815:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58827:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58838:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58823:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58823:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58815:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58862:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58873:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58858:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58858:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58881:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58887:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58877:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58877:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58851:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58851:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58851:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58907:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59041:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58915:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58915:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58907:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "58785:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "58800:4:19", + "type": "" + } + ], + "src": "58634:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59230:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59240:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59252:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59263:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59248:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59248:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59240:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59287:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59298:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59283:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59283:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59306:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59312:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "59302:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59302:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "59276:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "59276:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "59276:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "59332:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59466:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "59340:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "59340:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59332:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "59210:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "59225:4:19", + "type": "" + } + ], + "src": "59059:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59655:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59665:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59677:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59688:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59673:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59665:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59712:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59723:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59708:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59708:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59731:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59737:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "59727:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59727:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "59701:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "59701:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "59701:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "59757:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59891:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "59765:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "59765:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59757:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "59635:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "59650:4:19", + "type": "" + } + ], + "src": "59484:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60080:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60090:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60102:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60113:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60098:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60098:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60090:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60137:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60148:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60133:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60133:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60156:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60162:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "60152:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60152:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60126:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60126:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60126:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "60182:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60316:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "60190:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "60190:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60182:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60060:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60075:4:19", + "type": "" + } + ], + "src": "59909:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60505:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60515:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60527:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60538:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60523:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60523:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60515:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60562:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60573:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60558:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60558:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60581:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60587:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "60577:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60577:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60551:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60551:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60551:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "60607:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60741:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "60615:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "60615:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60607:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60485:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60500:4:19", + "type": "" + } + ], + "src": "60334:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60930:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60940:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60952:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60963:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60948:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60948:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60940:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60987:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60998:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60983:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60983:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61006:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61012:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61002:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61002:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60976:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60976:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60976:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61032:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61166:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61040:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61040:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61032:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60910:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60925:4:19", + "type": "" + } + ], + "src": "60759:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61355:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61365:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61377:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61388:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61373:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61373:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61365:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61412:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61423:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61408:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61408:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61431:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61437:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61427:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61427:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61401:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61401:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61401:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61457:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61591:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61465:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61465:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61457:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "61335:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "61350:4:19", + "type": "" + } + ], + "src": "61184:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61780:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61790:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61802:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61813:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61798:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61790:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61837:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61848:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61833:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61833:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61856:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61862:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61852:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61852:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61826:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61826:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61826:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61882:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62016:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61890:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61890:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61882:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "61760:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "61775:4:19", + "type": "" + } + ], + "src": "61609:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62205:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62215:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62227:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62238:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62223:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62223:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62215:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62262:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62273:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62258:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62281:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62287:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "62277:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62277:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "62251:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62251:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "62251:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "62307:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62441:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "62315:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "62315:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62307:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62185:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62200:4:19", + "type": "" + } + ], + "src": "62034:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62629:247:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62639:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62651:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62662:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62647:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62647:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62639:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62686:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62697:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62682:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62682:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62705:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62711:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "62701:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62701:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "62675:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62675:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "62675:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "62731:138:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "62855:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62864:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_CarbonTokenDetails_$6250_memory_ptr_to_t_struct$_CarbonTokenDetails_$6250_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "62739:115:19" + }, + "nodeType": "YulFunctionCall", + "src": "62739:130:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62731:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_CarbonTokenDetails_$6250_memory_ptr__to_t_struct$_CarbonTokenDetails_$6250_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62601:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "62613:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62624:4:19", + "type": "" + } + ], + "src": "62459:417:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62980:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62990:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63002:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63013:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62998:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62990:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63070:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63083:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63094:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63079:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63079:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63026:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63026:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63026:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62952:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "62964:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62975:4:19", + "type": "" + } + ], + "src": "62882:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63236:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63246:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63258:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63269:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63254:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63254:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "63246:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63326:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63339:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63350:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63335:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63335:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63282:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63282:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63282:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "63407:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63420:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63431:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63416:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63416:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63363:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63363:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63363:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "63200:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "63212:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "63220:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "63231:4:19", + "type": "" + } + ], + "src": "63110:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63874:1153:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63884:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63896:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63907:3:19", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63892:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63892:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "63884:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63965:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63978:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63989:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63974:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63974:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63921:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63921:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63921:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "64046:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64059:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64070:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64055:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64055:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64002:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64002:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64002:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "64128:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64141:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64152:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64137:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64137:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64084:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64084:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64084:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "64206:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64219:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64230:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64215:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64215:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "64166:39:19" + }, + "nodeType": "YulFunctionCall", + "src": "64166:68:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64166:68:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "64288:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64301:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64312:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64297:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64297:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64244:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64244:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64244:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "64371:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64384:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64395:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64380:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64380:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64327:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64327:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64327:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "64454:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64467:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64478:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64463:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64463:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64410:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64410:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64410:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "64537:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64550:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64561:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64546:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64546:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64493:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64493:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64493:73:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64587:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64598:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64583:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64583:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64608:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64614:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64604:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64604:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64576:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64576:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64576:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64634:83:19", + "value": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "64703:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64712:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64642:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64642:75:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64634:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64738:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64749:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64734:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64734:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64759:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64765:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64755:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64755:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64727:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64727:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64727:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64785:83:19", + "value": { + "arguments": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "64854:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64863:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64793:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64793:75:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64785:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64889:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64900:3:19", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64885:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64885:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64910:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64916:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64906:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64906:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64878:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64878:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64878:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64936:84:19", + "value": { + "arguments": [ + { + "name": "value10", + "nodeType": "YulIdentifier", + "src": "65005:7:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "65015:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64944:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64944:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64936:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "63765:9:19", + "type": "" + }, + { + "name": "value10", + "nodeType": "YulTypedName", + "src": "63777:7:19", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "63786:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "63794:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "63802:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "63810:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "63818:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "63826:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "63834:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "63842:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "63850:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "63858:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "63869:4:19", + "type": "" + } + ], + "src": "63448:1579:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65073:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "65083:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65099:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "65093:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "65093:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65083:6:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "65111:35:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65133:6:19" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65141:4:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65129:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65129:17:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "65115:10:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65257:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65259:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65259:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65259:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65200:10:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65212:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65197:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65197:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65236:10:19" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65248:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "65233:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65233:22:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "65194:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65194:62:19" + }, + "nodeType": "YulIf", + "src": "65191:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65290:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65294:10:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "65283:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65283:22:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65283:22:19" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65057:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "65066:6:19", + "type": "" + } + ], + "src": "65033:278:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65399:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65504:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65506:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65506:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65506:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65476:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65484:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65473:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65473:30:19" + }, + "nodeType": "YulIf", + "src": "65470:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "65531:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65543:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65551:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "65539:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65539:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65531:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "65593:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65605:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65611:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65601:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65601:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65593:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65383:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65394:4:19", + "type": "" + } + ], + "src": "65317:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65711:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65816:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65818:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65818:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65818:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65788:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65796:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65785:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65785:30:19" + }, + "nodeType": "YulIf", + "src": "65782:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "65843:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65855:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65863:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "65851:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65851:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65843:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "65905:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65917:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65923:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65913:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65913:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65905:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65695:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65706:4:19", + "type": "" + } + ], + "src": "65629:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66007:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66112:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "66114:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "66114:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66114:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66084:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66092:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "66081:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "66081:30:19" + }, + "nodeType": "YulIf", + "src": "66078:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "66159:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66175:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66183:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66171:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66171:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66194:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "66190:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66190:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "66167:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66167:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66159:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66237:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66249:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66255:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66245:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66245:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66237:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65991:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "66002:4:19", + "type": "" + } + ], + "src": "65941:326:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66340:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66445:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "66447:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "66447:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66447:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66417:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66425:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "66414:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "66414:30:19" + }, + "nodeType": "YulIf", + "src": "66411:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "66492:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66508:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66516:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66504:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66504:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66527:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "66523:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66523:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "66500:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66500:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66492:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66570:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66582:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66588:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66578:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66578:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66570:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "66324:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "66335:4:19", + "type": "" + } + ], + "src": "66273:327:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66678:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66688:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66696:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66688:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66709:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66721:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66726:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66717:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66717:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66709:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "66665:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "66673:4:19", + "type": "" + } + ], + "src": "66606:132:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66798:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66808:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66816:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66808:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66836:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66839:3:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "66829:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "66829:14:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66829:14:19" + }, + { + "nodeType": "YulAssignment", + "src": "66852:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66870:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66873:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "66860:9:19" + }, + "nodeType": "YulFunctionCall", + "src": "66860:18:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66852:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "66785:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "66793:4:19", + "type": "" + } + ], + "src": "66744:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66965:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66976:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "66992:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "66986:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "66986:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66976:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "66948:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "66958:6:19", + "type": "" + } + ], + "src": "66891:114:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67069:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67080:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "67096:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67090:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "67090:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67080:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "67052:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67062:6:19", + "type": "" + } + ], + "src": "67011:98:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67174:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67185:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "67201:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67195:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "67195:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67185:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "67157:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67167:6:19", + "type": "" + } + ], + "src": "67115:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67295:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67305:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "67317:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67322:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67313:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67313:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "67305:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "67282:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "67290:4:19", + "type": "" + } + ], + "src": "67220:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67450:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67467:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67472:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67460:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67460:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67460:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67488:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67507:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67512:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67503:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67503:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67488:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67422:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67427:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67438:11:19", + "type": "" + } + ], + "src": "67339:184:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67624:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67641:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67646:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67634:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67634:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67634:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67662:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67681:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67686:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67677:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67677:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67662:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67596:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67601:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67612:11:19", + "type": "" + } + ], + "src": "67529:168:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67789:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67806:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67811:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67799:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67799:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67799:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67827:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67846:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67851:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67842:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67842:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67827:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67761:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67766:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67777:11:19", + "type": "" + } + ], + "src": "67703:159:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67964:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67981:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67986:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67974:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67974:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67974:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "68002:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "68021:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68026:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "68017:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68017:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "68002:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67936:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67941:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67952:11:19", + "type": "" + } + ], + "src": "67868:169:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68088:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68098:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68127:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "68109:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "68109:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68098:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68070:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68080:7:19", + "type": "" + } + ], + "src": "68043:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68187:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68197:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68222:5:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "68215:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68215:13:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "68208:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68208:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68197:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68169:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68179:7:19", + "type": "" + } + ], + "src": "68145:90:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68286:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68296:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68307:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68296:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68268:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68278:7:19", + "type": "" + } + ], + "src": "68241:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68368:105:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68378:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68393:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68400:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68389:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68389:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68378:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68350:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68360:7:19", + "type": "" + } + ], + "src": "68324:149:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68524:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68534:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68549:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68556:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68545:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68545:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68534:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68506:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68516:7:19", + "type": "" + } + ], + "src": "68479:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68656:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68666:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68677:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68666:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68638:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68648:7:19", + "type": "" + } + ], + "src": "68611:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68737:43:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68747:27:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68762:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68769:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68758:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68758:16:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68747:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68719:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68729:7:19", + "type": "" + } + ], + "src": "68694:86:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68837:103:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "68860:3:19" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "68865:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68870:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "68847:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "68847:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "68847:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "68918:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68923:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "68914:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68914:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68932:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "68907:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68907:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "68907:27:19" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "68819:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "68824:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "68829:6:19", + "type": "" + } + ], + "src": "68786:154:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68995:258:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "69005:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69014:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "69009:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69074:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "69099:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69104:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69095:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69095:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "69118:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69123:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69114:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69114:11:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69108:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69108:18:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "69088:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69088:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69088:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69035:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69038:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "69032:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69032:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "69046:19:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69048:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69057:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69060:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69053:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69053:10:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69048:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "69028:3:19", + "statements": [] + }, + "src": "69024:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69171:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "69221:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69226:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69217:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69217:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69235:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "69210:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69210:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69210:27:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69152:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69155:6:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69149:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69149:13:19" + }, + "nodeType": "YulIf", + "src": "69146:2:19" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "68977:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "68982:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "68987:6:19", + "type": "" + } + ], + "src": "68946:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69282:25:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "invalid", + "nodeType": "YulIdentifier", + "src": "69292:7:19" + }, + "nodeType": "YulFunctionCall", + "src": "69292:9:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69292:9:19" + } + ] + }, + "name": "panic_error", + "nodeType": "YulFunctionDefinition", + "src": "69259:48:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69361:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69371:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69389:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69396:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69385:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69385:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69405:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "69401:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69401:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "69381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69381:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "69371:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "69344:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "69354:6:19", + "type": "" + } + ], + "src": "69313:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69474:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69484:36:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69509:3:19", + "type": "", + "value": "224" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69514:5:19" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "69505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69505:15:19" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "69484:8:19" + } + ] + } + ] + }, + "name": "shift_right_224_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "69455:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "69465:8:19", + "type": "" + } + ], + "src": "69421:106:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69576:790:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "69616:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "69618:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69592:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69592:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69610:4:19", + "type": "", + "value": "0x44" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "69589:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69589:26:19" + }, + "nodeType": "YulIf", + "src": "69586:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69650:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69653:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69656:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "69635:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69635:23:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69635:23:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69667:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69709:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69703:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69703:8:19" + } + ], + "functionName": { + "name": "shift_right_224_unsigned", + "nodeType": "YulIdentifier", + "src": "69678:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "69678:34:19" + }, + "variables": [ + { + "name": "sig", + "nodeType": "YulTypedName", + "src": "69671:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69752:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "69754:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "sig", + "nodeType": "YulIdentifier", + "src": "69734:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69739:10:19", + "type": "", + "value": "0x08c379a0" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "69731:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69731:19:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "69724:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69724:27:19" + }, + "nodeType": "YulIf", + "src": "69721:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69771:21:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69789:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69783:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69783:9:19" + }, + "variables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "69775:4:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "69816:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69822:1:19", + "type": "", + "value": "4" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69829:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69829:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69847:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "69825:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69825:24:19" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "69801:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69801:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69801:49:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69860:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "69880:4:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69874:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69874:11:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "69864:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70011:29:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70025:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "69916:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69924:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69913:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69913:30:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "69964:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69972:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69960:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69960:17:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69979:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69979:16:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69957:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69957:39:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "69897:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69897:113:19" + }, + "nodeType": "YulIf", + "src": "69894:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70050:28:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "70065:4:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "70071:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70061:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70061:17:19" + }, + "variables": [ + { + "name": "msg", + "nodeType": "YulTypedName", + "src": "70054:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70087:24:19", + "value": { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70107:3:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "70101:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "70101:10:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "70091:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70154:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70156:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70126:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70134:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "70123:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70123:30:19" + }, + "nodeType": "YulIf", + "src": "70120:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70173:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70192:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70197:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70188:14:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70204:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70184:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70184:27:19" + }, + "variables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "70177:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70260:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70262:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "70226:3:19" + }, + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "70235:4:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "70241:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "70241:16:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70231:27:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "70223:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70223:36:19" + }, + "nodeType": "YulIf", + "src": "70220:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70286:2:19", + "type": "", + "value": "64" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70298:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70303:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70294:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70294:14:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70332:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "70310:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "70310:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70290:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70290:50:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "70279:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70279:62:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70279:62:19" + }, + { + "nodeType": "YulAssignment", + "src": "70350:10:19", + "value": { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70357:3:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "70350:3:19" + } + ] + } + ] + }, + "name": "try_decode_error_message", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "69572:3:19", + "type": "" + } + ], + "src": "69533:833:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70415:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70472:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70481:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70484:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70474:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70474:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70474:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70438:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70463:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "70445:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70445:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70435:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70435:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70428:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70428:43:19" + }, + "nodeType": "YulIf", + "src": "70425:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70408:5:19", + "type": "" + } + ], + "src": "70372:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70540:76:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70594:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70603:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70606:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70596:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70596:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70596:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70563:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70585:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "70570:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "70570:21:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70560:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70560:32:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70553:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70553:40:19" + }, + "nodeType": "YulIf", + "src": "70550:2:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70533:5:19", + "type": "" + } + ], + "src": "70500:116:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70665:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70722:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70731:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70734:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70724:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70724:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70724:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70688:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70713:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "70695:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70695:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70685:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70685:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70678:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70678:43:19" + }, + "nodeType": "YulIf", + "src": "70675:2:19" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70658:5:19", + "type": "" + } + ], + "src": "70622:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70792:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70848:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70857:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70860:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70850:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70850:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70850:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70815:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70839:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "70822:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "70822:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70812:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70812:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70805:42:19" + }, + "nodeType": "YulIf", + "src": "70802:2:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70785:5:19", + "type": "" + } + ], + "src": "70750:120:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70919:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70976:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70985:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70988:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70978:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70978:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70978:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70942:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70967:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "70949:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70949:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70939:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70939:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70932:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70932:43:19" + }, + "nodeType": "YulIf", + "src": "70929:2:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70912:5:19", + "type": "" + } + ], + "src": "70876:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "71045:77:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "71100:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "71109:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "71112:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "71102:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "71102:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "71102:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "71068:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "71091:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "71075:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "71075:22:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "71065:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "71065:33:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "71058:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "71058:41:19" + }, + "nodeType": "YulIf", + "src": "71055:2:19" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "71038:5:19", + "type": "" + } + ], + "src": "71004:118:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\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 abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\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_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n if slt(sub(dataEnd, headStart), 320) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 192\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value7 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value8 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 288))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value9 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 192))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value6 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value7 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value8 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n let length := and(div(slotValue, 2), 0x7f)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let length := div(slotValue, 2)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n\n mstore(add(pos, 0), \"ERC1155: transfer to non ERC1155\")\n\n mstore(add(pos, 32), \"Receiver implementer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 53)\n\n mstore(add(pos, 0), \"CLM8::issueOnBehalf: call must c\")\n\n mstore(add(pos, 32), \"ome from DAO or admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"EnumerableSet: index out of boun\")\n\n mstore(add(pos, 32), \"ds\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"ERC1155: ERC1155Receiver rejecte\")\n\n mstore(add(pos, 32), \"d tokens\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n\n mstore(add(pos, 0), \"AccessControl: sender must be an\")\n\n mstore(add(pos, 32), \" admin to grant\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"CLM8::onlyDealer: msg.sender not\")\n\n mstore(add(pos, 32), \" a dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n\n mstore(add(pos, 0), \"ERC1155: balance query for the z\")\n\n mstore(add(pos, 32), \"ero address\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n\n mstore(add(pos, 0), \"ERC165: invalid interface id\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n\n mstore(add(pos, 0), \"CLM8::retire: tokenId does not e\")\n\n mstore(add(pos, 32), \"xist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n\n mstore(add(pos, 0), \"SafeMath: addition overflow\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"CLM8::mint: tokenId does not exi\")\n\n mstore(add(pos, 32), \"st\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"CLM8::unregisterDealer: tokenTyp\")\n\n mstore(add(pos, 32), \"eId does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: caller is not owner nor\")\n\n mstore(add(pos, 32), \" approved\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 70)\n\n mstore(add(pos, 0), \"CLM8::unregisterConsumer(limited\")\n\n mstore(add(pos, 32), \"): only admin can unregister con\")\n\n mstore(add(pos, 64), \"sumers\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n\n mstore(add(pos, 0), \"CLM8::getTokenType: tokenId does\")\n\n mstore(add(pos, 32), \" not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"CLM8::onlyAdmin: msg.sender not \")\n\n mstore(add(pos, 32), \"the admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered offset dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"AccessControl: sender must be an\")\n\n mstore(add(pos, 32), \" admin to revoke\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n\n mstore(add(pos, 0), \"CLM8::retire: not enough availab\")\n\n mstore(add(pos, 32), \"le balance to retire\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): proposer \")\n\n mstore(add(pos, 32), \"not a registered dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n\n mstore(add(pos, 0), \"ERC1155: transfer to the zero ad\")\n\n mstore(add(pos, 32), \"dress\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"ERC1155: transfer caller is not \")\n\n mstore(add(pos, 32), \"owner nor approved\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n\n mstore(add(pos, 0), \"Initializable: contract is alrea\")\n\n mstore(add(pos, 32), \"dy initialized\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"ERC1155: burn from the zero addr\")\n\n mstore(add(pos, 32), \"ess\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 54)\n\n mstore(add(pos, 0), \"CLM8::transfer: sender and recei\")\n\n mstore(add(pos, 32), \"ver cannot be the same\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"CLM8::mint: cannot mint new toke\")\n\n mstore(add(pos, 32), \"ns in limited mode\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"CLM8::registerDealer: tokenTypeI\")\n\n mstore(add(pos, 32), \"d does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n\n mstore(add(pos, 0), \"CLM8::transfer: tokenId does not\")\n\n mstore(add(pos, 32), \" exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n\n mstore(add(pos, 0), \"CLM8::registerConsumer(limited):\")\n\n mstore(add(pos, 32), \" only admin can register consume\")\n\n mstore(add(pos, 64), \"rs\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered emissions auditor\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): msg.sende\")\n\n mstore(add(pos, 32), \"r not timelock\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"CLM8::getTokenRetiredAmount: tok\")\n\n mstore(add(pos, 32), \"enId does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 88)\n\n mstore(add(pos, 0), \"CLM8::_beforeTokenTransfer(limit\")\n\n mstore(add(pos, 32), \"ed): only emissions auditors can\")\n\n mstore(add(pos, 64), \" issue audited emissions\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): issuer no\")\n\n mstore(add(pos, 32), \"t a registered emissions auditor\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): issuee no\")\n\n mstore(add(pos, 32), \"t admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: setting approval status\")\n\n mstore(add(pos, 32), \" for self\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: accounts and ids length\")\n\n mstore(add(pos, 32), \" mismatch\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered REC dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"ERC1155: ids and amounts length \")\n\n mstore(add(pos, 32), \"mismatch\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n\n mstore(add(pos, 0), \"ERC1155: mint to the zero addres\")\n\n mstore(add(pos, 32), \"s\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n\n mstore(add(pos, 0), \"CLM8::consumerOrDealer: msg.send\")\n\n mstore(add(pos, 32), \"er not a consumer or a dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n\n mstore(add(pos, 0), \"CLM8::_issue: tokenTypeId is inv\")\n\n mstore(add(pos, 32), \"alid\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n\n mstore(add(pos, 0), \"AccessControl: can only renounce\")\n\n mstore(add(pos, 32), \" roles for self\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 75)\n\n mstore(add(pos, 0), \"CLM8::_beforeTokenTransfer(limit\")\n\n mstore(add(pos, 32), \"ed): only admin and DAO can tran\")\n\n mstore(add(pos, 64), \"sfer tokens\")\n\n end := add(pos, 96)\n }\n\n // struct NetEmissionsTokenNetwork.CarbonTokenDetails -> struct NetEmissionsTokenNetwork.CarbonTokenDetails\n function abi_encode_t_struct$_CarbonTokenDetails_$6250_memory_ptr_to_t_struct$_CarbonTokenDetails_$6250_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x0160)\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // tokenTypeId\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint8_to_t_uint8(memberValue0, add(pos, 0x20))\n }\n\n {\n // issuer\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // issuee\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x60))\n }\n\n {\n // fromDate\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n }\n\n {\n // thruDate\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xa0))\n }\n\n {\n // dateCreated\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xc0))\n }\n\n {\n // automaticRetireDate\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xe0))\n }\n\n {\n // metadata\n\n let memberValue0 := mload(add(value, 0x0100))\n\n mstore(add(pos, 0x0100), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // manifest\n\n let memberValue0 := mload(add(value, 0x0120))\n\n mstore(add(pos, 0x0120), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // description\n\n let memberValue0 := mload(add(value, 0x0140))\n\n mstore(add(pos, 0x0140), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\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_t_uint8_to_t_uint8(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_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 mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_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_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool_t_bool_t_bool_t_bool_t_bool__to_t_bool_t_bool_t_bool_t_bool_t_bool__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_bool_to_t_bool_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_struct$_CarbonTokenDetails_$6250_memory_ptr__to_t_struct$_CarbonTokenDetails_$6250_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$_CarbonTokenDetails_$6250_memory_ptr_to_t_struct$_CarbonTokenDetails_$6250_memory_ptr_fromStack(value0, tail)\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 abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 352)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\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_uint8_to_t_uint8_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n mstore(add(headStart, 256), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value8, tail)\n\n mstore(add(headStart, 288), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value9, tail)\n\n mstore(add(headStart, 320), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value10, tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\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() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\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 array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error() {\n invalid()\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function shift_right_224_unsigned(value) -> newValue {\n newValue :=\n\n shr(224, value)\n\n }\n\n function try_decode_error_message() -> ret {\n if lt(returndatasize(), 0x44) { leave }\n\n returndatacopy(0, 0, 4)\n let sig := shift_right_224_unsigned(mload(0))\n if iszero(eq(sig, 0x08c379a0)) { leave }\n\n let data := mload(64)\n returndatacopy(data, 4, sub(returndatasize(), 4))\n\n let offset := mload(data)\n if or(\n gt(offset, 0xffffffffffffffff),\n gt(add(offset, 0x24), returndatasize())\n ) {\n leave\n }\n\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, 0xffffffffffffffff) { leave }\n\n let end := add(add(msg, 0x20), length)\n if gt(end, add(data, returndatasize())) { leave }\n\n mstore(64, add(add(msg, 0x20), round_up_to_mul_of_32(length)))\n ret := msg\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\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 validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\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 validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212203e19fb657a96ebdd262380c1111e194766395468c5b1c9e60e8aaa9e8bcad1b264736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x273 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F157C9B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xCE6CCFAF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xF000BE98 EQ PUSH2 0x823 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x83F JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x85B JUMPI DUP1 PUSH4 0xFCBA7948 EQ PUSH2 0x879 JUMPI DUP1 PUSH4 0xFD0C4A9A EQ PUSH2 0x897 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xCE6CCFAF EQ PUSH2 0x74D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xDBA851B0 EQ PUSH2 0x79D JUMPI DUP1 PUSH4 0xDDC3E6EB EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xE2E564F2 EQ PUSH2 0x7D7 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x699 JUMPI DUP1 PUSH4 0xBDACB303 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xC1E03728 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x71D JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x7F157C9B EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x92089C46 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0xA0D975A7 EQ PUSH2 0x64B JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x53DBE982 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x53DBE982 EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0x5DDB368F EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x69F7EF44 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x76AED2E1 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x76CE4755 EQ PUSH2 0x54E JUMPI DUP1 PUSH4 0x78E5C592 EQ PUSH2 0x56C JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x33781A0E EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x44B22FDD EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x484 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x18A50D7E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x18A50D7E EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x1EF68EF7 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x293A7F2E EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3E4 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x324 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x5772 JUMP JUMPDEST PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0xC9B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x373 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x391 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x5816 JUMP JUMPDEST PUSH2 0xE07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x51BA JUMP JUMPDEST PUSH2 0x10C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1486 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x14FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x436 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x431 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x16D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x482 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47D SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1757 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x563C JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x6E51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1A02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D8 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x508 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x538 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x545 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x556 PUSH2 0x1DD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x574 PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1E1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B2 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5D0 SWAP2 SWAP1 PUSH2 0x5736 JUMP JUMPDEST PUSH2 0x1EC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x605 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x600 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x635 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x630 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1F2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1F6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x672 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x683 PUSH2 0x2016 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6AE SWAP2 SWAP1 PUSH2 0x542B JUMP JUMPDEST PUSH2 0x201D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x219E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E6 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F8 SWAP2 SWAP1 PUSH2 0x74D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x71B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x253D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x737 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x732 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x744 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x767 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x778 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x79B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x796 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x28EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7A5 PUSH2 0x2963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D0 SWAP2 SWAP1 PUSH2 0x56A8 JUMP JUMPDEST PUSH2 0x2976 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x29DF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81A SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x83D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x838 SWAP2 SWAP1 PUSH2 0x5308 JUMP JUMPDEST PUSH2 0x2C28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x859 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x854 SWAP2 SWAP1 PUSH2 0x5279 JUMP JUMPDEST PUSH2 0x2CEA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x863 PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x881 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x552E JUMP JUMPDEST PUSH2 0x3077 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91B SWAP1 PUSH2 0x7015 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA11 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA3F PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA6D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA9B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xAA6 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xAAE JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xAB6 JUMPI POP DUP1 JUMPDEST PUSH2 0xAF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAEC SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAFE DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB34 SWAP1 PUSH2 0x72B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x7255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE CALLER DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2CEA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xC8F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC64 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8F 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 0xC72 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA8 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCDE SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCF0 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xD2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD26 SWAP1 PUSH2 0x7095 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD76 SWAP1 PUSH2 0x7275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP2 JUMP JUMPDEST PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x97 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE33 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE61 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE8F PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEBD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xEC8 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xED0 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xED8 JUMPI POP DUP1 JUMPDEST PUSH2 0xF17 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0E SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF56 SWAP1 PUSH2 0x7055 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF69 CALLER DUP8 PUSH2 0x8B3 JUMP JUMPDEST DUP6 GT ISZERO PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA2 SWAP1 PUSH2 0x7195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFB6 CALLER DUP8 DUP8 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x1019 DUP6 PUSH1 0xCD PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8F1B5EBB586D3D169E4ED07DB9CD10CE0DD30C7B656171310EAE7517C0B53CF9 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x7415 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1179 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1170 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1181 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x11C7 JUMPI POP PUSH2 0x11C6 DUP6 PUSH2 0x11C1 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x1206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FD SWAP1 PUSH2 0x71F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1220 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x13F1 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x123A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1252 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x12D9 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1390 DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1468 SWAP3 SWAP2 SWAP1 PUSH2 0x6E73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x147E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x380B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14AD PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x14A8 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x14EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14E3 SWAP1 PUSH2 0x6FD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14F6 DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1507 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x153D SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x154F DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x158E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1585 SWAP1 PUSH2 0x7295 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x15C9 JUMPI PUSH2 0x15C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1604 JUMPI PUSH2 0x15FF PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x162F JUMP JUMPDEST PUSH2 0x162E PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x1486 JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x165A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x1486 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA8377DEEE15954185683D55EFFD369508B4935978C8CB2BAB790BF04C5701814 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP4 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1740 SWAP1 PUSH2 0x7495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1753 DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1783 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17DF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x17EA JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x17F2 JUMPI POP DUP1 JUMPDEST PUSH2 0x1831 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1893 JUMPI PUSH2 0x1853 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1889 SWAP1 PUSH2 0x72D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x18BD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x1486 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69A0ADEE259D26FE61F4776F7BEA7F3A9737C7321256821B985F988545EFD319 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x194C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1943 SWAP1 PUSH2 0x73D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1995 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x19F7 JUMPI PUSH2 0x19D4 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19B3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19C7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8B3 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19E0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x199B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2E PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A5C PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A8A PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1A95 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1A9D JUMPI POP DUP1 JUMPDEST PUSH2 0x1ADC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AD3 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B3E JUMPI PUSH2 0x1AFE PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1B3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B34 SWAP1 PUSH2 0x70F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1B68 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x28EF JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3A38088DA75EE2D80F6C753F55F8FD17602AE17D8BD0EF44D5E1F28AB5AF11F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BBD PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP5 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C1D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP6 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP7 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1C56 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1C5E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1C77 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C87 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1CC6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBD SWAP1 PUSH2 0x7115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x52656E657761626C6520456E6572677920436572746966696361746500000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436172626F6E20456D697373696F6E73204F6666736574000000000000000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4175646974656420456D697373696F6E73000000000000000000000000000000 DUP2 MSTORE POP SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP2 JUMP JUMPDEST PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1E29 DUP6 DUP6 PUSH2 0x8B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA0D975A7 DUP8 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E68 SWAP3 SWAP2 SWAP1 PUSH2 0x6E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EB8 SWAP2 SWAP1 PUSH2 0x57ED JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF3 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B41 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F25 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F78 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1FB7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FAE SWAP1 PUSH2 0x7335 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x203C PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2093 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208A SWAP1 PUSH2 0x73B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0x20A0 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x214D PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2192 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x21AB PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21E1 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x2236 PUSH2 0x4DD9 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23E9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x23BE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23E9 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 0x23CC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x248B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2460 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248B 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 0x246E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x252D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2502 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x252D 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 0x2510 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x255C JUMPI POP PUSH2 0x255B PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2572 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25A8 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x2601 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x2619 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3B9C JUMP JUMPDEST PUSH2 0x2663 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 PUSH2 0x3C9E JUMP JUMPDEST PUSH2 0x2670 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x269A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26EE PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x2718 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x3D02 JUMP JUMPDEST DUP2 PUSH1 0xC9 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x27D7 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27FB PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3D10 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2818 PUSH1 0x0 DUP1 SHL DUP9 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2846 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP10 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2874 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28A2 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP12 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28D0 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP13 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP5 DUP5 SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP POP POP POP POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x2916 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2911 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2955 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x294C SWAP1 PUSH2 0x7175 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x295F DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x2983 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x29EC PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2A2B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A22 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A34 DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6A SWAP1 PUSH2 0x70B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AAE JUMPI PUSH2 0x2AA9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B15 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AE9 JUMPI PUSH2 0x2AE4 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B14 JUMP JUMPDEST PUSH2 0x2B13 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x2B1E DUP3 PUSH2 0x1BC2 JUMP JUMPDEST PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x98552DED770F1D05A505572F3387C108DBC6B566EA3D49F83CFF3D1F1C72A042 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2C8D JUMPI POP PUSH2 0x2C8C PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x2CCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CC3 SWAP1 PUSH2 0x6F75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CDE DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D51 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D62 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2DA8 JUMPI POP PUSH2 0x2DA7 DUP6 PUSH2 0x2DA2 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DDE SWAP1 PUSH2 0x70D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2DF1 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E11 DUP2 DUP8 DUP8 PUSH2 0x2E02 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x2E0B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x2E8E DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2F45 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x300F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3025 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A3 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30D1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30FF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x310A JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x3112 JUMPI POP DUP1 JUMPDEST PUSH2 0x3151 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3148 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3163 DUP13 CALLER DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x317E PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST LT PUSH2 0x318C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31FD SWAP1 PUSH2 0x7435 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3231 DUP2 PUSH1 0x0 DUP8 PUSH2 0x3222 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x322B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x3294 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x335F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3376 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x33ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33E4 SWAP1 PUSH2 0x7235 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33F7 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3427 DUP2 DUP6 PUSH1 0x0 PUSH2 0x3409 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x3412 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x34A4 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79A9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x356F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x35C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35BF SWAP1 PUSH2 0x7075 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x35E8 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x476D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x37AD JUMPI PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3606 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x366E JUMPI POP PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ PUSH2 0x3733 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x36EF JUMPI POP PUSH2 0x36EE PUSH1 0x0 DUP1 SHL DUP10 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x372E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3725 SWAP1 PUSH2 0x74B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x379D JUMP JUMPDEST PUSH2 0x375D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP10 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x379C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3793 SWAP1 PUSH2 0x7355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x35EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x37FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37F5 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x382A DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x39D3 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3870 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x38BB JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38B8 SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x394A JUMPI PUSH2 0x38C7 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x38D2 JUMPI POP PUSH2 0x390F JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3906 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3941 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x39D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39C8 SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3A03 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x4788 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3A6B JUMPI PUSH2 0x3A10 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x3A87 JUMPI POP PUSH1 0x3 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3A9A JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AC7 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x47B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3B2F JUMPI PUSH2 0x3AD4 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B50 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B83 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4855 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B96 ADDRESS PUSH2 0x4775 JUMP JUMPDEST ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x3BBB JUMPI POP PUSH2 0x3BBA PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x3BD1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x3C10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C07 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x3C60 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x3C68 PUSH2 0x4878 JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x4960 JUMP JUMPDEST PUSH2 0x3C79 DUP3 PUSH2 0x4A58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C9A JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP4 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x3D0C DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1E DUP3 PUSH1 0x0 ADD PUSH2 0x4B6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D2E DUP9 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x3D6D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D64 SWAP1 PUSH2 0x7475 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3F93 JUMPI PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ DUP1 PUSH2 0x3D97 JUMPI POP PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x3F17 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E23 SWAP1 PUSH2 0x7315 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3E39 PUSH1 0x0 DUP1 SHL DUP12 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3E78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E6F SWAP1 PUSH2 0x7395 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3EA2 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST DUP1 PUSH2 0x3ED3 JUMPI POP PUSH2 0x3ED2 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x3F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F09 SWAP1 PUSH2 0x71B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F8E JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x3F8D JUMPI PUSH2 0x3F4D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F83 SWAP1 PUSH2 0x7375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST PUSH2 0x4100 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x400D JUMPI PUSH2 0x3FC9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4008 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FFF SWAP1 PUSH2 0x73F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FF JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x4087 JUMPI PUSH2 0x4043 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4082 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4079 SWAP1 PUSH2 0x7155 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x40FD JUMPI PUSH2 0x40BD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x40FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40F3 SWAP1 PUSH2 0x72F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH2 0x410A PUSH1 0xCB PUSH2 0x4B7B JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 PUSH2 0x411A PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH2 0x4134 PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP5 DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP TIMESTAMP DUP2 PUSH1 0x5 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x7 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x421B SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x8 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4234 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP2 DUP2 PUSH1 0x9 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x424D SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP PUSH2 0x4272 DUP12 PUSH2 0x425C PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST PUSH1 0x3 DUP10 PUSH1 0xFF AND EQ ISZERO PUSH2 0x43B9 JUMPI PUSH2 0x42B1 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x433C DUP9 PUSH1 0xCD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x99CC3EEB446560C9A2D2483BC5160735EC0FB1851AEA3BDE32E7A56C30C11DA6 DUP11 PUSH1 0xCD PUSH1 0x0 DUP7 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 PUSH1 0x0 ADD SLOAD DUP7 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP8 PUSH1 0x3 ADD SLOAD DUP9 PUSH1 0x4 ADD SLOAD DUP10 PUSH1 0x6 ADD SLOAD DUP11 PUSH1 0x5 ADD SLOAD DUP12 PUSH1 0x7 ADD DUP13 PUSH1 0x8 ADD DUP14 PUSH1 0x9 ADD PUSH1 0x40 MLOAD PUSH2 0x4518 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x753B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x4548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4577 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x4588 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45BC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x4765 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4602 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6DCE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x464D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x464A SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x46DC JUMPI PUSH2 0x4659 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x4664 JUMPI POP PUSH2 0x46A1 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4698 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46D3 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4763 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x475A SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47B0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4B91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47E0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4C01 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x4833 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x482A SWAP1 PUSH2 0x6F95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4842 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4897 JUMPI POP PUSH2 0x4896 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x48AD JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x48EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48E3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x493C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 ISZERO PUSH2 0x495D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x497F JUMPI POP PUSH2 0x497E PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4995 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x49D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49CB SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4A24 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4A34 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A55 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4A77 JUMPI POP PUSH2 0x4A76 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4A8D JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x4ACC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4AC3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4B1C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4B25 DUP3 PUSH2 0x4DBF JUMP JUMPDEST PUSH2 0x4B35 PUSH4 0xD9B67A26 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST PUSH2 0x4B45 PUSH4 0xE89341C PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B66 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9D DUP4 DUP4 PUSH2 0x4855 JUMP JUMPDEST PUSH2 0x4BF6 JUMPI DUP3 PUSH1 0x0 ADD DUP3 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 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x4BFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x4CDD JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4C4C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4C69 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x4CA1 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x4CE3 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x4D52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D49 SWAP1 PUSH2 0x7035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x67 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4DD5 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x4EA3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4ED1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4ED1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4ED0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4EB5 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4EDE SWAP2 SWAP1 PUSH2 0x4EE2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4EFB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4EE3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4F0E DUP2 PUSH2 0x791E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4F38 PUSH2 0x4F33 DUP3 PUSH2 0x762C JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4F5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F8D JUMPI DUP2 PUSH2 0x4F73 DUP9 DUP3 PUSH2 0x4EFF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F60 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4FBB PUSH2 0x4FB6 DUP3 PUSH2 0x7658 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4FE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5010 JUMPI DUP2 PUSH2 0x4FF6 DUP9 DUP3 PUSH2 0x5116 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4FE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5029 DUP2 PUSH2 0x7935 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x503E DUP2 PUSH2 0x794C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5053 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5068 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x507F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5092 PUSH2 0x508D DUP3 PUSH2 0x7684 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x50AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50B9 DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x50E6 PUSH2 0x50E1 DUP3 PUSH2 0x76B4 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x5102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x510D DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5125 DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x513A DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x514F DUP2 PUSH2 0x7991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5175 DUP5 DUP3 DUP6 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x519F DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x51B0 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x51D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51E0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x51F1 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x520E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x521A DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5243 DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x526C DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x5291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x529F DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x52B0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x52C1 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x52D2 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52FB DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5336 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x5347 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x5358 DUP14 DUP3 DUP15 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x5369 DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x537A DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x538B DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x539C DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53C5 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53EF DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5419 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x543E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x544C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x545D DUP6 DUP3 DUP7 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x547A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5488 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5499 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x54B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x54C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x54D7 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x54E8 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5513 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5524 DUP6 DUP3 DUP7 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x554D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x555B DUP13 DUP3 DUP14 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x556C DUP13 DUP3 DUP14 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x557D DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x558E DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x559F DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x55B0 DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55D9 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5602 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5620 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x562C DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x564F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5675 DUP6 DUP3 DUP7 ADD PUSH2 0x4F14 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x569E DUP6 DUP3 DUP7 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56C8 DUP5 DUP3 DUP6 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56F1 DUP5 DUP3 DUP6 ADD PUSH2 0x502F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x570D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x571B DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x572C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5757 DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5768 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5792 DUP5 DUP3 DUP6 ADD PUSH2 0x5044 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57BB DUP5 DUP3 DUP6 ADD PUSH2 0x5059 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57E4 DUP5 DUP3 DUP6 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x580D DUP5 DUP3 DUP6 ADD PUSH2 0x512B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5829 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5837 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5848 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585E DUP4 DUP4 PUSH2 0x6D0F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5873 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5882 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5893 DUP3 PUSH2 0x7709 JUMP JUMPDEST PUSH2 0x589D DUP2 DUP6 PUSH2 0x7737 JUMP JUMPDEST SWAP4 POP PUSH2 0x58A8 DUP4 PUSH2 0x76E4 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x58D9 JUMPI DUP2 MLOAD PUSH2 0x58C0 DUP9 DUP3 PUSH2 0x5852 JUMP JUMPDEST SWAP8 POP PUSH2 0x58CB DUP4 PUSH2 0x772A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x58AC JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x58EF DUP2 PUSH2 0x778D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x58FE DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x590F DUP3 PUSH2 0x7714 JUMP JUMPDEST PUSH2 0x5919 DUP2 DUP6 PUSH2 0x7748 JUMP JUMPDEST SWAP4 POP PUSH2 0x5929 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x5932 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5948 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x5952 DUP2 DUP6 PUSH2 0x7759 JUMP JUMPDEST SWAP4 POP PUSH2 0x5962 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x596B DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5981 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x598B DUP2 DUP6 PUSH2 0x776A JUMP JUMPDEST SWAP4 POP PUSH2 0x599B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x59A4 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x59CC JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x59F2 JUMPI PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x59DD DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x5A00 DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH2 0x5A0B DUP6 PUSH2 0x76F4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5A2D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5A0E JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A4B PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AB1 PUSH1 0x35 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A69737375654F6E426568616C663A2063616C6C206D7573742063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D652066726F6D2044414F206F722061646D696E0000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B17 PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6473000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B7D PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BE3 PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F206772616E740000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C49 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C794465616C65723A206D73672E73656E646572206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061206465616C65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CAF PUSH1 0x2B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D15 PUSH1 0x1C DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x4552433136353A20696E76616C696420696E7465726661636520696400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D55 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A20746F6B656E496420646F6573206E6F742065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7869737400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DBB PUSH1 0x1B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DFB PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A20746F6B656E496420646F6573206E6F7420657869 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7374000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E61 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E72656769737465724465616C65723A20746F6B656E547970 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65496420646F6573206E6F742065786973740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC7 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2D PUSH1 0x46 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E7265676973746572436F6E73756D6572286C696D69746564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x293A206F6E6C792061646D696E2063616E20756E726567697374657220636F6E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x73756D6572730000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FB9 PUSH1 0x2A DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E547970653A20746F6B656E496420646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F7420657869737400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x601F PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C7941646D696E3A206D73672E73656E646572206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7468652061646D696E0000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6085 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726564206F6666736574206465616C657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60EB PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F207265766F6B6500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6151 PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A206E6F7420656E6F75676820617661696C6162 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C652062616C616E636520746F20726574697265000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61B7 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A2070726F706F73657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E6F7420612072656769737465726564206465616C6572000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621D PUSH1 0x25 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6283 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62E9 PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634F PUSH1 0x23 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206275726E2066726F6D20746865207A65726F2061646472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B5 PUSH1 0x36 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A2073656E64657220616E64207265636569 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7665722063616E6E6F74206265207468652073616D6500000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641B PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A2063616E6E6F74206D696E74206E657720746F6B65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E7320696E206C696D69746564206D6F64650000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6481 PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A72656769737465724465616C65723A20746F6B656E5479706549 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420646F6573206E6F7420657869737400000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64E7 PUSH1 0x26 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A20746F6B656E496420646F6573206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2065786973740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x654D PUSH1 0x42 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265676973746572436F6E73756D6572286C696D69746564293A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206F6E6C792061646D696E2063616E20726567697374657220636F6E73756D65 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7273000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x65D9 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420656D697373696F6E732061756469746F72000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x663F PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A206D73672E73656E6465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72206E6F742074696D656C6F636B000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A5 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E52657469726564416D6F756E743A20746F6B PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x656E496420646F6573206E6F7420657869737400000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x670B PUSH1 0x58 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C7920656D697373696F6E732061756469746F72732063616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x206973737565206175646974656420656D697373696F6E730000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6797 PUSH1 0x40 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756572206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061207265676973746572656420656D697373696F6E732061756469746F72 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67FD PUSH1 0x27 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756565206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061646D696E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6863 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68C9 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x692F PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420524543206465616C657200000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6995 PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69FB PUSH1 0x21 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A61 PUSH1 0x3D DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A636F6E73756D65724F724465616C65723A206D73672E73656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6572206E6F74206120636F6E73756D6572206F722061206465616C6572000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AC7 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20746F6B656E54797065496420697320696E76 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B2D PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B93 PUSH1 0x4B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C792061646D696E20616E642044414F2063616E207472616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7366657220746F6B656E73000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x6C2B PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x6C3E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x6D2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x6C51 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x6C64 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x6C77 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x6C8A PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x6C9D PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x6CB0 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x6CCA DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x6CE6 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x6D02 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6D18 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D27 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D36 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D45 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D60 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6D7B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6D88 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6D9A DUP2 DUP7 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6DAE DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6DC2 DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6DE3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DF0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DFD PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x6E0A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6E1C DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6E3D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6E4A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E6B DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E8D DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6EA1 DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EBF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6EDA PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EE7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EF4 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F01 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F0E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6F2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F4D DUP2 DUP5 PUSH2 0x5976 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F6E DUP2 PUSH2 0x5A3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F8E DUP2 PUSH2 0x5AA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FAE DUP2 PUSH2 0x5B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FCE DUP2 PUSH2 0x5B70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FEE DUP2 PUSH2 0x5BD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x700E DUP2 PUSH2 0x5C3C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x702E DUP2 PUSH2 0x5CA2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x704E DUP2 PUSH2 0x5D08 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x706E DUP2 PUSH2 0x5D48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x708E DUP2 PUSH2 0x5DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70AE DUP2 PUSH2 0x5DEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70CE DUP2 PUSH2 0x5E54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70EE DUP2 PUSH2 0x5EBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x710E DUP2 PUSH2 0x5F20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x712E DUP2 PUSH2 0x5FAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x714E DUP2 PUSH2 0x6012 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x716E DUP2 PUSH2 0x6078 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x718E DUP2 PUSH2 0x60DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71AE DUP2 PUSH2 0x6144 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71CE DUP2 PUSH2 0x61AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71EE DUP2 PUSH2 0x6210 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x720E DUP2 PUSH2 0x6276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x722E DUP2 PUSH2 0x62DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x724E DUP2 PUSH2 0x6342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726E DUP2 PUSH2 0x63A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x728E DUP2 PUSH2 0x640E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72AE DUP2 PUSH2 0x6474 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72CE DUP2 PUSH2 0x64DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72EE DUP2 PUSH2 0x6540 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x730E DUP2 PUSH2 0x65CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x732E DUP2 PUSH2 0x6632 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734E DUP2 PUSH2 0x6698 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x736E DUP2 PUSH2 0x66FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x738E DUP2 PUSH2 0x678A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73AE DUP2 PUSH2 0x67F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73CE DUP2 PUSH2 0x6856 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73EE DUP2 PUSH2 0x68BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x740E DUP2 PUSH2 0x6922 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x742E DUP2 PUSH2 0x6988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x744E DUP2 PUSH2 0x69EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x746E DUP2 PUSH2 0x6A54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x748E DUP2 PUSH2 0x6ABA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74AE DUP2 PUSH2 0x6B20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74CE DUP2 PUSH2 0x6B86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74EF DUP2 DUP5 PUSH2 0x6C12 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x750C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7527 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7534 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x7551 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x755E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x756B PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7578 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x6D3C JUMP JUMPDEST PUSH2 0x7585 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7592 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x759F PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x75AC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x75BF DUP2 DUP7 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x75D4 DUP2 DUP6 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x75E9 DUP2 DUP5 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7622 JUMPI PUSH2 0x7621 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7647 JUMPI PUSH2 0x7646 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7673 JUMPI PUSH2 0x7672 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x769F JUMPI PUSH2 0x769E PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x76CF JUMPI PUSH2 0x76CE PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7786 DUP3 PUSH2 0x77CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7833 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7818 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x7842 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x7878 JUMPI PUSH2 0x791B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x7889 PUSH1 0x0 MLOAD PUSH2 0x785B JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x789A JUMPI POP PUSH2 0x791B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x78C6 JUMPI POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x78E5 JUMPI POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x7900 JUMPI POP POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST PUSH2 0x7909 DUP3 PUSH2 0x784A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7927 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP2 EQ PUSH2 0x7932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x793E DUP2 PUSH2 0x778D JUMP JUMPDEST DUP2 EQ PUSH2 0x7949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7955 DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP2 EQ PUSH2 0x7960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x796C DUP2 PUSH2 0x77A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x7977 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7983 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP2 EQ PUSH2 0x798E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x799A DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x79A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524331 BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY NOT 0xFB PUSH6 0x7A96EBDD2623 DUP1 0xC1 GT 0x1E NOT SELFBALANCE PUSH7 0x395468C5B1C9E6 0xE DUP11 0xAA SWAP15 DUP12 0xCA 0xD1 0xB2 PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "485:21510:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3409:228:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1176:148:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20443:373:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3162:105:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13550:317:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1103:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1320:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4652:112:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15121:560:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5967:1184:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5014:223:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17593:650:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16315:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6188:205:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18392:330:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3794:530:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19711:345:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5983:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15806:381;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13999:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1422:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1553:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20938:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4335:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3320:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21320:149:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14600:308;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2097:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4392:306:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20822:110:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21597:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3674:593;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3625:125:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16901:510:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;5471:226:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;696:23:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21867:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18848:735;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4765:166:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8885:777:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4998:897:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;813:20:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1224:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8070:581;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3409:228:5;3495:7;3541:1;3522:21;;:7;:21;;;;3514:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3608:9;:13;3618:2;3608:13;;;;;;;;;;;:22;3622:7;3608:22;;;;;;;;;;;;;;;;3601:29;;3409:228;;;;:::o;1176:148:1:-;1261:4;1284:20;:33;1305:11;1284:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:40;;1176:148;;;:::o;20443:373:17:-;4311:15;4329:40;1607:32;4358:10;4329:7;:40::i;:::-;4311:58;;4379:16;4398:42;1280:34;4429:10;4398:7;:42::i;:::-;4379:61;;4450:16;4469:45;1379:37;4503:10;4469:7;:45::i;:::-;4450:64;;4524:15;4542:49;1485:41;4580:10;4542:7;:49::i;:::-;4524:67;;4623:10;:25;;;;4637:11;4623:25;:40;;;;4652:11;4623:40;:54;;;;4667:10;4623:54;4602:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;20579:20:::1;20591:7;20579:11;:20::i;:::-;20571:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20675:2;20661:16;;:10;:16;;;;20652:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20747:62;20770:10;20782:2;20786:7;20795:5;20747:62;;;;;;;;;;;;;;;;::::0;:22:::1;:62::i;:::-;20443:373:::0;;;;;;;:::o;3162:105:5:-;3224:13;3256:4;3249:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:105;;;:::o;13550:317:17:-;5248:39;2142:4:0;5256:18:17;;5276:10;5248:7;:39::i;:::-;5227:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;13668:20:::1;13680:7;13668:11;:20::i;:::-;13660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13746:11;;;;;;;;;;;13745:12;13737:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13822:38;13834:2;13838:7;13847:8;13822:38;;;;;;;;;;;::::0;:11:::1;:38::i;:::-;13550:317:::0;;;:::o;1103:82::-;1155:30;1103:82;:::o;1320:96::-;1379:37;1320:96;:::o;4652:112:0:-;4709:7;4735:6;:12;4742:4;4735:12;;;;;;;;;;;:22;;;4728:29;;4652:112;;;:::o;15121:560:17:-;4311:15;4329:40;1607:32;4358:10;4329:7;:40::i;:::-;4311:58;;4379:16;4398:42;1280:34;4429:10;4398:7;:42::i;:::-;4379:61;;4450:16;4469:45;1379:37;4503:10;4469:7;:45::i;:::-;4450:64;;4524:15;4542:49;1485:41;4580:10;4542:7;:49::i;:::-;4524:67;;4623:10;:25;;;;4637:11;4623:25;:40;;;;4652:11;4623:40;:54;;;;4667:10;4623:54;4602:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;15236:20:::1;15248:7;15236:11;:20::i;:::-;15228:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15327:36;15343:10;15355:7;15327:15;:36::i;:::-;15317:6;:46;;15307:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15433:40;15445:10;15457:7;15466:6;15433:11;:40::i;:::-;15523:49;15565:6;15523:16;:25;15540:7;15523:25;;;;;;;;;;;:37;15549:10;15523:37;;;;;;;;;;;;;;;;:41;;:49;;;;:::i;:::-;15483:16;:25;15500:7;15483:25;;;;;;;;;;;:37;15509:10;15483:37;;;;;;;;;;;;;;;:89;;;;15613:10;15587:87;;;15637:7;15658:6;15587:87;;;;;;;:::i;:::-;;;;;;;;15121:560:::0;;;;;;:::o;5967:1184:5:-;6221:7;:14;6207:3;:10;:28;6199:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6312:1;6298:16;;:2;:16;;;;6290:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6395:12;:10;:12::i;:::-;6387:20;;:4;:20;;;:60;;;;6411:36;6428:4;6434:12;:10;:12::i;:::-;6411:16;:36::i;:::-;6387:60;6366:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;6534:16;6553:12;:10;:12::i;:::-;6534:31;;6576:60;6597:8;6607:4;6613:2;6617:3;6622:7;6631:4;6576:20;:60::i;:::-;6652:9;6647:349;6671:3;:10;6667:1;:14;6647:349;;;6702:10;6715:3;6719:1;6715:6;;;;;;;;;;;;;;6702:19;;6735:14;6752:7;6760:1;6752:10;;;;;;;;;;;;;;6735:27;;6799:123;6840:6;6799:123;;;;;;;;;;;;;;;;;:9;:13;6809:2;6799:13;;;;;;;;;;;:19;6813:4;6799:19;;;;;;;;;;;;;;;;:23;;:123;;;;;:::i;:::-;6777:9;:13;6787:2;6777:13;;;;;;;;;;;:19;6791:4;6777:19;;;;;;;;;;;;;;;:145;;;;6956:29;6978:6;6956:9;:13;6966:2;6956:13;;;;;;;;;;;:17;6970:2;6956:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6936:9;:13;6946:2;6936:13;;;;;;;;;;;:17;6950:2;6936:17;;;;;;;;;;;;;;;:49;;;;6647:349;;6683:3;;;;;6647:349;;;;7041:2;7011:47;;7035:4;7011:47;;7025:8;7011:47;;;7045:3;7050:7;7011:47;;;;;;;:::i;:::-;;;;;;;;7069:75;7105:8;7115:4;7121:2;7125:3;7130:7;7139:4;7069:35;:75::i;:::-;5967:1184;;;;;;:::o;5014:223:0:-;5097:45;5105:6;:12;5112:4;5105:12;;;;;;;;;;;:22;;;5129:12;:10;:12::i;:::-;5097:7;:45::i;:::-;5089:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;5205:25;5216:4;5222:7;5205:10;:25::i;:::-;5014:223;;:::o;17593:650:17:-;5248:39;2142:4:0;5256:18:17;;5276:10;5248:7;:39::i;:::-;5227:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;17710:31:::1;17729:11;17710:18;:31::i;:::-;17702:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;17823:1;17808:11;:16;;;17804:264;;;17840:41;1280:34;17873:7;17840:9;:41::i;:::-;17804:264;;;17917:1;17902:11;:16;;;17898:170;;;17934:44;1379:37;17970:7;17934:9;:44::i;:::-;17898:170;;;18009:48;1485:41;18049:7;18009:9;:48::i;:::-;17898:170;17804:264;18159:37;1155:30;18188:7;18159:9;:37::i;:::-;18228:7;18211:25;;;;;;;;;;;;17593:650:::0;;:::o;16315:135::-;16383:4;16406:37;1607:32;16435:7;16406;:37::i;:::-;16399:44;;16315:135;;;:::o;6188:205:0:-;6285:12;:10;:12::i;:::-;6274:23;;:7;:23;;;6266:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6360:26;6372:4;6378:7;6360:11;:26::i;:::-;6188:205;;:::o;18392:330:17:-;4821:16;4840:42;1280:34;4871:10;4840:7;:42::i;:::-;4821:61;;4892:16;4911:45;1379:37;4945:10;4911:7;:45::i;:::-;4892:64;;4966:15;4984:49;1485:41;5022:10;4984:7;:49::i;:::-;4966:67;;5065:11;:26;;;;5080:11;5065:26;:40;;;;5095:10;5065:40;5044:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;18469:11:::1;;;;;;;;;;;18465:160;;;18504:39;2142:4:0;18512:18:17::0;::::1;18532:10;18504:7;:39::i;:::-;18496:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;18465:160;18634:39;1607:32;18665:7;18634:9;:39::i;:::-;18707:7;18688:27;;;;;;;;;;;;18392:330:::0;;;;:::o;3794:530:5:-;3967:16;4026:3;:10;4007:8;:15;:29;3999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;4093:30;4140:8;:15;4126:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4093:63;;4172:9;4167:120;4191:8;:15;4187:1;:19;4167:120;;;4246:30;4256:8;4265:1;4256:11;;;;;;;;;;;;;;4269:3;4273:1;4269:6;;;;;;;;;;;;;;4246:9;:30::i;:::-;4227:13;4241:1;4227:16;;;;;;;;;;;;;:49;;;;;4208:3;;;;;4167:120;;;;4304:13;4297:20;;;3794:530;;;;:::o;19711:345:17:-;4821:16;4840:42;1280:34;4871:10;4840:7;:42::i;:::-;4821:61;;4892:16;4911:45;1379:37;4945:10;4911:7;:45::i;:::-;4892:64;;4966:15;4984:49;1485:41;5022:10;4984:7;:49::i;:::-;4966:67;;5065:11;:26;;;;5080:11;5065:26;:40;;;;5095:10;5065:40;5044:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;19790:11:::1;;;;;;;;;;;19786:164;;;19825:39;2142:4:0;19833:18:17::0;::::1;19853:10;19825:7;:39::i;:::-;19817:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;19786:164;19959:46;1607:32;19997:7;19959:16;:46::i;:::-;20041:7;20020:29;;;;;;;;;;;;19711:345:::0;;;;:::o;5983:114::-;6036:7;6062:28;:18;:26;:28::i;:::-;6055:35;;5983:114;:::o;15806:381::-;15872:4;15888:16;15907:39;1280:34;15938:7;15907;:39::i;:::-;15888:58;;15956:16;15975:42;1379:37;16009:7;15975;:42::i;:::-;15956:61;;16027:15;16045:46;1485:41;16083:7;16045;:46::i;:::-;16027:64;;16105:11;:26;;;;16120:11;16105:26;:40;;;;16135:10;16105:40;16101:57;;;16154:4;16147:11;;;;;;;16101:57;16175:5;16168:12;;;;;15806:381;;;;:::o;13999:492::-;14085:13;14122:20;14134:7;14122:11;:20::i;:::-;14114:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14199:32;14234:13;:22;14248:7;14234:22;;;;;;;;;;;14199:57;;14292:1;14271:5;:17;;;;;;;;;;;;:22;;;14267:181;;;14309:37;;;;;;;;;;;;;;;;;;;;;;14267:181;14388:1;14367:5;:17;;;;;;;;;;;;:22;;;14363:85;;;14405:32;;;;;;;;;;;;;;;;;;;;;;14363:85;14457:26;;;;;;;;;;;;;;;;;;;;13999:492;;;;:::o;1422:104::-;1485:41;1422:104;:::o;1553:86::-;1607:32;1553:86;:::o;20938:314::-;21051:7;21060;21083:17;21103:33;21119:7;21128;21103:15;:33::i;:::-;21083:53;;21146:15;21164:4;:26;;;21191:7;21200;21164:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21146:62;;21226:9;21237:7;21218:27;;;;;;20938:314;;;;;:::o;4335:136:0:-;4408:7;4434:30;4458:5;4434:6;:12;4441:4;4434:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4427:37;;4335:136;;;;:::o;3320:137::-;3389:4;3412:38;3442:7;3412:6;:12;3419:4;3412:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3405:45;;3320:137;;;;:::o;21320:149:17:-;21403:7;21433:13;:22;21447:7;21433:22;;;;;;;;;;;:29;;;;;;;;;;;;21426:36;;21320:149;;;:::o;14600:308::-;14710:7;14741:20;14753:7;14741:11;:20::i;:::-;14733:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;14827:14;14844:16;:25;14861:7;14844:25;;;;;;;;;;;:34;14870:7;14844:34;;;;;;;;;;;;;;;;14827:51;;14895:6;14888:13;;;14600:308;;;;:::o;2097:49:0:-;2142:4;2097:49;;;:::o;4392:306:5:-;4510:8;4494:24;;:12;:10;:12::i;:::-;:24;;;;4486:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;4620:8;4575:18;:32;4594:12;:10;:12::i;:::-;4575:32;;;;;;;;;;;;;;;:42;4608:8;4575:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;4672:8;4643:48;;4658:12;:10;:12::i;:::-;4643:48;;;4682:8;4643:48;;;;;;:::i;:::-;;;;;;;;4392:306;;:::o;20822:110:17:-;5248:39;2142:4:0;5256:18:17;;5276:10;5248:7;:39::i;:::-;5227:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;20916:9:::1;20905:8;;:20;;;;;;;;;;;;;;;;;;20822:110:::0;:::o;21597:166::-;21686:25;;:::i;:::-;21734:13;:22;21748:7;21734:22;;;;;;;;;;;21727:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21597:166;;;:::o;3674:593::-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;3740:18:17::1;;;;;;;;;;;;::::0;:14:::1;:18::i;:::-;3816:53;1607:32;1155:30;3816:13;:53::i;:::-;3904:38;2142:4:0;3915:18:17::0;::::1;3935:6;3904:10;:38::i;:::-;3952:37;1155:30;3982:6;3952:10;:37::i;:::-;3999:41;1280:34;4033:6;3999:10;:41::i;:::-;4050:44;1379:37;4087:6;4050:10;:44::i;:::-;4104:48;1485:41;4145:6;4104:10;:48::i;:::-;4170:6;4162:5;;:14;;;;;;;;;;;;;;;;;;4228:1;4209:8;;:21;;;;;;;;;;;;;;;;;;4255:5;4241:11;;:19;;;;;;;;;;;;;;;;;;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;3674:593:17;;:::o;3625:125:0:-;3688:7;3714:29;:6;:12;3721:4;3714:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3707:36;;3625:125;;;:::o;16901:510:17:-;16959:4;16965;16971;16977;16983;16999:12;17014:36;2142:4:0;17022:18:17;;17042:7;17014;:36::i;:::-;16999:51;;17060:16;17079:39;1280:34;17110:7;17079;:39::i;:::-;17060:58;;17128:16;17147:42;1379:37;17181:7;17147;:42::i;:::-;17128:61;;17199:15;17217:46;1485:41;17255:7;17217;:46::i;:::-;17199:64;;17273:15;17291:37;1607:32;17320:7;17291;:37::i;:::-;17273:55;;17346:7;17355:11;17368;17381:10;17393;17338:66;;;;;;;;;;;;;;;16901:510;;;;;;;:::o;5471:226:0:-;5555:45;5563:6;:12;5570:4;5563:12;;;;;;;;;;;:22;;;5587:12;:10;:12::i;:::-;5555:7;:45::i;:::-;5547:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;5664:26;5676:4;5682:7;5664:11;:26::i;:::-;5471:226;;:::o;696:23:17:-;;;;;;;;;;;;;:::o;21867:125::-;5248:39;2142:4:0;5256:18:17;;5276:10;5248:7;:39::i;:::-;5227:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;21973:12:::1;21959:11;;:26;;;;;;;;;;;;;;;;;;21867:125:::0;:::o;18848:735::-;5248:39;2142:4:0;5256:18:17;;5276:10;5248:7;:39::i;:::-;5227:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;18967:31:::1;18986:11;18967:18;:31::i;:::-;18959:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;19082:1;19067:11;:16;;;19063:285;;;19099:48;1280:34;19139:7;19099:16;:48::i;:::-;19063:285;;;19183:1;19168:11;:16;;;19164:184;;;19200:51;1379:37;19243:7;19200:16;:51::i;:::-;19164:184;;;19282:55;1485:41;19329:7;19282:16;:55::i;:::-;19164:184;19063:285;19442:27;19461:7;19442:18;:27::i;:::-;19437:97;;19485:38;1155:30;19515:7;19485:10;:38::i;:::-;19437:97;19568:7;19549:27;;;;;;;;;;;;18848:735:::0;;:::o;4765:166:5:-;4864:4;4887:18;:27;4906:7;4887:27;;;;;;;;;;;;;;;:37;4915:8;4887:37;;;;;;;;;;;;;;;;;;;;;;;;;4880:44;;4765:166;;;;:::o;8885:777:17:-;9257:8;;;;;;;;;;;9243:22;;:10;:22;;;9242:67;;;;9270:39;2142:4:0;9278:18:17;;9298:10;9270:7;:39::i;:::-;9242:67;9221:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;9406:249;9426:6;9446;9466:11;9491:8;9513;9535;9557:19;9590:8;9612;9634:11;9406:6;:249::i;:::-;8885:777;;;;;;;;;;:::o;4998:897:5:-;5227:1;5213:16;;:2;:16;;;;5205:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5310:12;:10;:12::i;:::-;5302:20;;:4;:20;;;:60;;;;5326:36;5343:4;5349:12;:10;:12::i;:::-;5326:16;:36::i;:::-;5302:60;5281:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;5440:16;5459:12;:10;:12::i;:::-;5440:31;;5482:96;5503:8;5513:4;5519:2;5523:21;5541:2;5523:17;:21::i;:::-;5546:25;5564:6;5546:17;:25::i;:::-;5573:4;5482:20;:96::i;:::-;5611:77;5635:6;5611:77;;;;;;;;;;;;;;;;;:9;:13;5621:2;5611:13;;;;;;;;;;;:19;5625:4;5611:19;;;;;;;;;;;;;;;;:23;;:77;;;;;:::i;:::-;5589:9;:13;5599:2;5589:13;;;;;;;;;;;:19;5603:4;5589:19;;;;;;;;;;;;;;;:99;;;;5718:29;5740:6;5718:9;:13;5728:2;5718:13;;;;;;;;;;;:17;5732:2;5718:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;5698:9;:13;5708:2;5698:13;;;;;;;;;;;:17;5712:2;5698:17;;;;;;;;;;;;;;;:49;;;;5794:2;5763:46;;5788:4;5763:46;;5778:8;5763:46;;;5798:2;5802:6;5763:46;;;;;;;:::i;:::-;;;;;;;;5820:68;5851:8;5861:4;5867:2;5871;5875:6;5883:4;5820:30;:68::i;:::-;4998:897;;;;;;:::o;813:20:17:-;;;;;;;;;;;;;:::o;1224:90::-;1280:34;1224:90;:::o;8070:581::-;4821:16;4840:42;1280:34;4871:10;4840:7;:42::i;:::-;4821:61;;4892:16;4911:45;1379:37;4945:10;4911:7;:45::i;:::-;4892:64;;4966:15;4984:49;1485:41;5022:10;4984:7;:49::i;:::-;4966:67;;5065:11;:26;;;;5080:11;5065:26;:40;;;;5095:10;5065:40;5044:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8391:253:::1;8411:6;8431:10;8455:11;8480:8;8502;8524;8546:19;8579:8;8601;8623:11;8391:6;:253::i;:::-;8070:581:::0;;;;;;;;;;;;:::o;5441:184::-;5501:4;5553:7;5521:28;:18;:26;:28::i;:::-;:39;5517:56;;5569:4;5562:11;;;;5517:56;5590:5;5583:12;;5441:184;;;;:::o;8448:572:5:-;8581:1;8562:21;;:7;:21;;;;8554:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8632:16;8651:12;:10;:12::i;:::-;8632:31;;8674:107;8695:8;8713:1;8717:7;8726:21;8744:2;8726:17;:21::i;:::-;8749:25;8767:6;8749:17;:25::i;:::-;8776:4;8674:20;:107::i;:::-;8817:34;8844:6;8817:9;:13;8827:2;8817:13;;;;;;;;;;;:22;8831:7;8817:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;8792:9;:13;8802:2;8792:13;;;;;;;;;;;:22;8806:7;8792:22;;;;;;;;;;;;;;;:59;;;;8903:7;8866:57;;8899:1;8866:57;;8881:8;8866:57;;;8912:2;8916:6;8866:57;;;;;;;:::i;:::-;;;;;;;;8934:79;8965:8;8983:1;8987:7;8996:2;9000:6;9008:4;8934:30;:79::i;:::-;8448:572;;;;;:::o;10314:538::-;10428:1;10409:21;;:7;:21;;;;10401:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10481:16;10500:12;:10;:12::i;:::-;10481:31;;10523:105;10544:8;10554:7;10571:1;10575:21;10593:2;10575:17;:21::i;:::-;10598:25;10616:6;10598:17;:25::i;:::-;10523:105;;;;;;;;;;;;:20;:105::i;:::-;10664:108;10704:6;10664:108;;;;;;;;;;;;;;;;;:9;:13;10674:2;10664:13;;;;;;;;;;;:22;10678:7;10664:22;;;;;;;;;;;;;;;;:26;;:108;;;;;:::i;:::-;10639:9;:13;10649:2;10639:13;;;;;;;;;;;:22;10653:7;10639:22;;;;;;;;;;;;;;;:133;;;;10830:1;10788:57;;10813:7;10788:57;;10803:8;10788:57;;;10834:2;10838:6;10788:57;;;;;;;:::i;:::-;;;;;;;;10314:538;;;;:::o;2701:175:3:-;2759:7;2778:9;2794:1;2790;:5;2778:17;;2818:1;2813;:6;;2805:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2868:1;2861:8;;;2701:175;;;;:::o;828:104:10:-;881:15;915:10;908:17;;828:104;:::o;6201:1516:17:-;6460:66;6487:8;6497:4;6503:2;6507:3;6512:7;6521:4;6460:26;:66::i;:::-;6542:6;6537:1174;6558:3;:10;6554:1;:14;6537:1174;;;6590:32;6625:13;:21;6639:3;6643:1;6639:6;;;;;;;;;;;;;;6625:21;;;;;;;;;;;6590:56;;6724:11;;;;;;;;;;;6720:981;;;6829:1;6815:16;;:2;:16;;;6811:71;;;6855:8;;;6811:71;7159:1;7138:5;:17;;;;;;;;;;;;:22;;;7134:553;;7229:8;;;;;;;;;;;7217:20;;:8;:20;;;:61;;;;7241:37;2142:4:0;7249:18:17;;7269:8;7241:7;:37::i;:::-;7217:61;7184:219;;;;;;;;;;;;:::i;:::-;;;;;;;;;7134:553;;;7483:47;1485:41;7521:8;7483:7;:47::i;:::-;7450:218;;;;;;;;;;;;:::i;:::-;;;;;;;;;7134:553;6720:981;6537:1174;;6570:3;;;;;;;6537:1174;;;;6201:1516;;;;;;:::o;5443:163:3:-;5529:7;5561:1;5556;:6;;5564:12;5548:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5598:1;5594;:5;5587:12;;5443:163;;;;;:::o;13695:800:5:-;13939:15;:2;:13;;;:15::i;:::-;13935:554;;;14002:2;13974:54;;;14029:8;14039:4;14045:3;14050:7;14059:4;13974:90;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13970:509;;;;:::i;:::-;;;;;;;;14355:6;14348:14;;;;;;;;;;;:::i;:::-;;;;;;;;13970:509;14402:62;;;;;;;;;;:::i;:::-;;;;;;;;13970:509;14125:63;;;14113:75;;;:8;:75;;;;14109:172;;14212:50;;;;;;;;;;:::i;:::-;;;;;;;;14109:172;14065:230;13935:554;13695:800;;;;;;:::o;7395:184:0:-;7468:33;7493:7;7468:6;:12;7475:4;7468:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7464:109;;;7549:12;:10;:12::i;:::-;7522:40;;7540:7;7522:40;;7534:4;7522:40;;;;;;;;;;7464:109;7395:184;;:::o;5700:217:17:-;5769:4;5804:1;5790:11;:15;;;5789:39;;;;;5826:1;5811:11;:16;;;;5789:39;5785:81;;;5851:4;5844:11;;;;5785:81;5882:5;5875:12;;5700:217;;;;:::o;7585:188:0:-;7659:36;7687:7;7659:6;:12;7666:4;7659:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7655:112;;;7743:12;:10;:12::i;:::-;7716:40;;7734:7;7716:40;;7728:4;7716:40;;;;;;;;;;7655:112;7585:188;;:::o;1139:112:11:-;1204:7;1230;:14;;;1223:21;;1139:112;;;:::o;7688:156:12:-;7762:7;7812:22;7816:3;:10;;7828:5;7812:3;:22::i;:::-;7804:31;;7781:56;;7688:156;;;;:::o;6995:165::-;7075:4;7098:55;7108:3;:10;;7144:5;7128:23;;7120:32;;7098:9;:55::i;:::-;7091:62;;6995:165;;;;:::o;1952:123:4:-;2000:4;2024:44;2062:4;2024:29;:44::i;:::-;2023:45;2016:52;;1952:123;:::o;2185:183:5:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;2260:26:5::1;:24;:26::i;:::-;2296:25;:23;:25::i;:::-;2331:30;2356:4;2331:24;:30::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;2185:183:5;;:::o;7193:196:0:-;7328:9;7304:6;:12;7311:4;7304:12;;;;;;;;;;;:22;;;7298:4;7281:57;;;;;;;;;;7373:9;7348:6;:12;7355:4;7348:12;;;;;;;;;;;:22;;:34;;;;7193:196;;:::o;6958:110::-;7036:25;7047:4;7053:7;7036:10;:25::i;:::-;6958:110;;:::o;7241:115:12:-;7304:7;7330:19;7338:3;:10;;7330:7;:19::i;:::-;7323:26;;7241:115;;;:::o;9668:3697:17:-;10030:32;10049:12;10030:18;:32::i;:::-;10009:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;10139:11;;;;;;;;;;;10135:1598;;;10186:1;10170:12;:17;;;:38;;;;10207:1;10191:12;:17;;;10170:38;10166:853;;;10272:8;;;;;;;;;;;10258:22;;:10;:22;;;10229:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;10415:36;2142:4:0;10423:18:17;;10443:7;10415;:36::i;:::-;10386:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;10579:39;1280:34;10610:7;10579;:39::i;:::-;:85;;;;10622:42;1379:37;10656:7;10622;:42::i;:::-;10579:85;10550:211;;;;;;;;;;;;:::i;:::-;;;;;;;;;10166:853;;;10802:1;10786:12;:17;;;10782:237;;;10852:46;1485:41;10890:7;10852;:46::i;:::-;10823:181;;;;;;;;;;;;:::i;:::-;;;;;;;;;10782:237;10166:853;10135:1598;;;11069:1;11053:12;:17;;;11049:674;;;11119:39;1280:34;11150:7;11119;:39::i;:::-;11090:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;11049:674;;;11289:1;11273:12;:17;;;11269:454;;;11339:42;1379:37;11373:7;11339;:42::i;:::-;11310:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;11269:454;;;11515:1;11499:12;:17;;;11495:228;;;11565:46;1485:41;11603:7;11565;:46::i;:::-;11536:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;11495:228;11269:454;11049:674;10135:1598;11781:30;:18;:28;:30::i;:::-;11854:36;11893:13;:43;11907:28;:18;:26;:28::i;:::-;11893:43;;;;;;;;;;;11854:82;;11967:28;:18;:26;:28::i;:::-;11947:9;:17;;:48;;;;12029:12;12005:9;:21;;;:36;;;;;;;;;;;;;;;;;;12070:7;12051:9;:16;;;:26;;;;;;;;;;;;;;;;;;12106:7;12087:9;:16;;;:26;;;;;;;;;;;;;;;;;;12144:9;12123;:18;;:30;;;;12184:9;12163;:18;;:30;;;;12235:20;12203:9;:29;;:52;;;;12289:15;12265:9;:21;;:39;;;;12335:9;12314;:18;;:30;;;;;;;;;;;;:::i;:::-;;12375:9;12354;:18;;:30;;;;;;;;;;;;:::i;:::-;;12418:12;12394:9;:21;;:36;;;;;;;;;;;;:::i;:::-;;12441:65;12453:7;12462:28;:18;:26;:28::i;:::-;12492:9;12441:65;;;;;;;;;;;;:11;:65::i;:::-;12581:1;12565:12;:17;;;12561:245;;;12598:59;12610:9;:16;;;;;;;;;;;;12628:9;:17;;;12647:9;12598:11;:59::i;:::-;12727:68;12785:9;12727:16;:35;12744:9;:17;;;12727:35;;;;;;;;;;;:53;12763:9;:16;;;;;;;;;;;;12727:53;;;;;;;;;;;;;;;;:57;;:68;;;;:::i;:::-;12671:16;:35;12688:9;:17;;;12671:35;;;;;;;;;;;:53;12707:9;:16;;;;;;;;;;;;12671:53;;;;;;;;;;;;;;;:124;;;;12561:245;13091:9;:16;;;;;;;;;;;;12879:479;;13061:9;:16;;;;;;;;;;;;12879:479;;;12905:9;12928:16;:35;12945:9;:17;;;12928:35;;;;;;;;;;;:53;12964:9;:16;;;;;;;;;;;;12928:53;;;;;;;;;;;;;;;;12995:9;:17;;;13026:9;:21;;;;;;;;;;;;13121:9;:18;;;13153:9;:18;;;13185:9;:29;;;13228:9;:21;;;13263:9;:18;;13295:9;:18;;13327:9;:21;;12879:479;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9668:3697;;;;;;;;;;;:::o;14501:193:5:-;14567:16;14595:22;14634:1;14620:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14595:41;;14657:7;14646:5;14652:1;14646:8;;;;;;;;;;;;;:18;;;;;14682:5;14675:12;;;14501:193;;;:::o;12926:763::-;13145:15;:2;:13;;;:15::i;:::-;13141:542;;;13208:2;13180:49;;;13230:8;13240:4;13246:2;13250:6;13258:4;13180:83;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13176:497;;;;:::i;:::-;;;;;;;;13549:6;13542:14;;;;;;;;;;;:::i;:::-;;;;;;;;13176:497;13596:62;;;;;;;;;;:::i;:::-;;;;;;;;13176:497;13324:58;;;13312:70;;;:8;:70;;;;13308:167;;13406:50;;;;;;;;;;:::i;:::-;;;;;;;;13308:167;13264:225;13141:542;12926:763;;;;;;:::o;12685:235::-;;;;;;;:::o;737:413:9:-;797:4;1000:12;1109:7;1097:20;1089:28;;1142:1;1135:4;:8;1128:15;;;737:413;;;:::o;6440:150:12:-;6510:4;6533:50;6538:3;:10;;6574:5;6558:23;;6550:32;;6533:4;:50::i;:::-;6526:57;;6440:150;;;;:::o;6758:156::-;6831:4;6854:53;6862:3;:10;;6898:5;6882:23;;6874:32;;6854:7;:53::i;:::-;6847:60;;6758:156;;;;:::o;4463:201::-;4530:7;4578:5;4557:3;:11;;:18;;;;:26;4549:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4639:3;:11;;4651:5;4639:18;;;;;;;;;;;;;;;;4632:25;;4463:201;;;;:::o;3816:127::-;3889:4;3935:1;3912:3;:12;;:19;3925:5;3912:19;;;;;;;;;;;;:24;;3905:31;;3816:127;;;;:::o;759:64:10:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;1794:14;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;759:64:10;:::o;777:249:1:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;979:40:1::1;520:10;998:20;;979:18;:40::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;777:249:1;:::o;2374:389:5:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;2459:13:5::1;2467:4;2459:7;:13::i;:::-;2561:41;1973:10;2580:21;;2561:18;:41::i;:::-;2702:54;2125:10;2721:34;;2702:18;:54::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;2374:389:5;;:::o;4024:107:12:-;4080:7;4106:3;:11;;:18;;;;4099:25;;4024:107;;;:::o;1257:178:11:-;1427:1;1409:7;:14;;;:19;;;;;;;;;;;1257:178;:::o;1651:404:12:-;1714:4;1735:21;1745:3;1750:5;1735:9;:21::i;:::-;1730:319;;1772:3;:11;;1789:5;1772:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1952:3;:11;;:18;;;;1930:3;:12;;:19;1943:5;1930:19;;;;;;;;;;;:40;;;;1991:4;1984:11;;;;1730:319;2033:5;2026:12;;1651:404;;;;;:::o;2223:1512::-;2289:4;2405:18;2426:3;:12;;:19;2439:5;2426:19;;;;;;;;;;;;2405:40;;2474:1;2460:10;:15;2456:1273;;2817:21;2854:1;2841:10;:14;2817:38;;2869:17;2910:1;2889:3;:11;;:18;;;;:22;2869:42;;3151:17;3171:3;:11;;3183:9;3171:22;;;;;;;;;;;;;;;;3151:42;;3314:9;3285:3;:11;;3297:13;3285:26;;;;;;;;;;;;;;;:38;;;;3431:1;3415:13;:17;3389:3;:12;;:23;3402:9;3389:23;;;;;;;;;;;:43;;;;3538:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3630:3;:12;;:19;3643:5;3630:19;;;;;;;;;;;3623:26;;;3671:4;3664:11;;;;;;;;2456:1273;3713:5;3706:12;;;2223:1512;;;;;:::o;1718:198:1:-;1816:10;1801:25;;:11;:25;;;;;1793:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1905:4;1869:20;:33;1890:11;1869:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1718:198;:::o;7974:86:5:-;8047:6;8040:4;:13;;;;;;;;;;;;:::i;:::-;;7974:86;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:139:19:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:761::-;;289:3;282:4;274:6;270:17;266:27;256:2;;307:1;304;297:12;256:2;347:6;334:20;372:80;387:64;444:6;387:64;:::i;:::-;372:80;:::i;:::-;363:89;;472:5;500:6;493:5;486:21;530:4;522:6;518:17;508:27;;552:4;547:3;543:14;536:21;;608:6;658:3;650:4;642:6;638:17;633:3;629:27;626:36;623:2;;;675:1;672;665:12;623:2;703:1;688:236;713:6;710:1;707:13;688:236;;;780:3;808:37;841:3;829:10;808:37;:::i;:::-;803:3;796:50;875:4;870:3;866:14;859:21;;909:4;904:3;900:14;893:21;;748:176;735:1;732;728:9;723:14;;688:236;;;692:14;246:684;;;;;;;:::o;953:761::-;;1073:3;1066:4;1058:6;1054:17;1050:27;1040:2;;1091:1;1088;1081:12;1040:2;1131:6;1118:20;1156:80;1171:64;1228:6;1171:64;:::i;:::-;1156:80;:::i;:::-;1147:89;;1256:5;1284:6;1277:5;1270:21;1314:4;1306:6;1302:17;1292:27;;1336:4;1331:3;1327:14;1320:21;;1392:6;1442:3;1434:4;1426:6;1422:17;1417:3;1413:27;1410:36;1407:2;;;1459:1;1456;1449:12;1407:2;1487:1;1472:236;1497:6;1494:1;1491:13;1472:236;;;1564:3;1592:37;1625:3;1613:10;1592:37;:::i;:::-;1587:3;1580:50;1659:4;1654:3;1650:14;1643:21;;1693:4;1688:3;1684:14;1677:21;;1532:176;1519:1;1516;1512:9;1507:14;;1472:236;;;1476:14;1030:684;;;;;;;:::o;1720:133::-;;1801:6;1788:20;1779:29;;1817:30;1841:5;1817:30;:::i;:::-;1769:84;;;;:::o;1859:139::-;;1943:6;1930:20;1921:29;;1959:33;1986:5;1959:33;:::i;:::-;1911:87;;;;:::o;2004:137::-;;2087:6;2074:20;2065:29;;2103:32;2129:5;2103:32;:::i;:::-;2055:86;;;;:::o;2147:141::-;;2234:6;2228:13;2219:22;;2250:32;2276:5;2250:32;:::i;:::-;2209:79;;;;:::o;2294:464::-;;2398:3;2391:4;2383:6;2379:17;2375:27;2365:2;;2416:1;2413;2406:12;2365:2;2456:6;2443:20;2481:64;2496:48;2537:6;2496:48;:::i;:::-;2481:64;:::i;:::-;2472:73;;2568:6;2561:5;2554:21;2607:4;2599:6;2595:17;2643:4;2636:5;2632:16;2681:3;2672:6;2667:3;2663:16;2660:25;2657:2;;;2698:1;2695;2688:12;2657:2;2711:41;2745:6;2740:3;2735;2711:41;:::i;:::-;2355:403;;;;;;;:::o;2764:466::-;;2869:3;2862:4;2854:6;2850:17;2846:27;2836:2;;2887:1;2884;2877:12;2836:2;2927:6;2914:20;2952:65;2967:49;3009:6;2967:49;:::i;:::-;2952:65;:::i;:::-;2943:74;;3040:6;3033:5;3026:21;3079:4;3071:6;3067:17;3115:4;3108:5;3104:16;3153:3;3144:6;3139:3;3135:16;3132:25;3129:2;;;3170:1;3167;3160:12;3129:2;3183:41;3217:6;3212:3;3207;3183:41;:::i;:::-;2826:404;;;;;;;:::o;3236:139::-;;3320:6;3307:20;3298:29;;3336:33;3363:5;3336:33;:::i;:::-;3288:87;;;;:::o;3381:143::-;;3469:6;3463:13;3454:22;;3485:33;3512:5;3485:33;:::i;:::-;3444:80;;;;:::o;3530:135::-;;3612:6;3599:20;3590:29;;3628:31;3653:5;3628:31;:::i;:::-;3580:85;;;;:::o;3671:260::-;;3779:2;3767:9;3758:7;3754:23;3750:32;3747:2;;;3795:1;3792;3785:12;3747:2;3837:1;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;:::i;:::-;3851:63;;3809:115;3737:194;;;;:::o;3937:403::-;;;4062:2;4050:9;4041:7;4037:23;4033:32;4030:2;;;4078:1;4075;4068:12;4030:2;4120:1;4144:53;4189:7;4180:6;4169:9;4165:22;4144:53;:::i;:::-;4134:63;;4092:115;4245:2;4270:53;4315:7;4306:6;4295:9;4291:22;4270:53;:::i;:::-;4260:63;;4217:116;4020:320;;;;;:::o;4346:1231::-;;;;;;4581:3;4569:9;4560:7;4556:23;4552:33;4549:2;;;4598:1;4595;4588:12;4549:2;4640:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4612:115;4765:2;4790:53;4835:7;4826:6;4815:9;4811:22;4790:53;:::i;:::-;4780:63;;4737:116;4919:2;4908:9;4904:18;4891:32;4950:18;4942:6;4939:30;4936:2;;;4982:1;4979;4972:12;4936:2;5009:78;5079:7;5070:6;5059:9;5055:22;5009:78;:::i;:::-;4999:88;;4863:234;5163:2;5152:9;5148:18;5135:32;5194:18;5186:6;5183:30;5180:2;;;5226:1;5223;5216:12;5180:2;5253:78;5323:7;5314:6;5303:9;5299:22;5253:78;:::i;:::-;5243:88;;5107:234;5407:3;5396:9;5392:19;5379:33;5439:18;5431:6;5428:30;5425:2;;;5471:1;5468;5461:12;5425:2;5498:62;5552:7;5543:6;5532:9;5528:22;5498:62;:::i;:::-;5488:72;;5351:219;4539:1038;;;;;;;;:::o;5583:945::-;;;;;;5768:3;5756:9;5747:7;5743:23;5739:33;5736:2;;;5785:1;5782;5775:12;5736:2;5827:1;5851:53;5896:7;5887:6;5876:9;5872:22;5851:53;:::i;:::-;5841:63;;5799:115;5952:2;5977:53;6022:7;6013:6;6002:9;5998:22;5977:53;:::i;:::-;5967:63;;5924:116;6078:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6050:116;6204:2;6229:53;6274:7;6265:6;6254:9;6250:22;6229:53;:::i;:::-;6219:63;;6176:116;6358:3;6347:9;6343:19;6330:33;6390:18;6382:6;6379:30;6376:2;;;6422:1;6419;6412:12;6376:2;6449:62;6503:7;6494:6;6483:9;6479:22;6449:62;:::i;:::-;6439:72;;6302:219;5726:802;;;;;;;;:::o;6534:1889::-;;;;;;;;;;;6823:3;6811:9;6802:7;6798:23;6794:33;6791:2;;;6840:1;6837;6830:12;6791:2;6882:1;6906:53;6951:7;6942:6;6931:9;6927:22;6906:53;:::i;:::-;6896:63;;6854:115;7007:2;7032:53;7077:7;7068:6;7057:9;7053:22;7032:53;:::i;:::-;7022:63;;6979:116;7133:2;7158:51;7201:7;7192:6;7181:9;7177:22;7158:51;:::i;:::-;7148:61;;7105:114;7257:2;7282:53;7327:7;7318:6;7307:9;7303:22;7282:53;:::i;:::-;7272:63;;7229:116;7383:3;7409:53;7454:7;7445:6;7434:9;7430:22;7409:53;:::i;:::-;7399:63;;7355:117;7510:3;7536:53;7581:7;7572:6;7561:9;7557:22;7536:53;:::i;:::-;7526:63;;7482:117;7637:3;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7609:117;7792:3;7781:9;7777:19;7764:33;7824:18;7816:6;7813:30;7810:2;;;7856:1;7853;7846:12;7810:2;7883:63;7938:7;7929:6;7918:9;7914:22;7883:63;:::i;:::-;7873:73;;7736:220;8022:3;8011:9;8007:19;7994:33;8054:18;8046:6;8043:30;8040:2;;;8086:1;8083;8076:12;8040:2;8113:63;8168:7;8159:6;8148:9;8144:22;8113:63;:::i;:::-;8103:73;;7966:220;8252:3;8241:9;8237:19;8224:33;8284:18;8276:6;8273:30;8270:2;;;8316:1;8313;8306:12;8270:2;8343:63;8398:7;8389:6;8378:9;8374:22;8343:63;:::i;:::-;8333:73;;8196:220;6781:1642;;;;;;;;;;;;;:::o;8429:397::-;;;8551:2;8539:9;8530:7;8526:23;8522:32;8519:2;;;8567:1;8564;8557:12;8519:2;8609:1;8633:53;8678:7;8669:6;8658:9;8654:22;8633:53;:::i;:::-;8623:63;;8581:115;8734:2;8759:50;8801:7;8792:6;8781:9;8777:22;8759:50;:::i;:::-;8749:60;;8706:113;8509:317;;;;;:::o;8832:403::-;;;8957:2;8945:9;8936:7;8932:23;8928:32;8925:2;;;8973:1;8970;8963:12;8925:2;9015:1;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8987:115;9140:2;9165:53;9210:7;9201:6;9190:9;9186:22;9165:53;:::i;:::-;9155:63;;9112:116;8915:320;;;;;:::o;9241:546::-;;;;9383:2;9371:9;9362:7;9358:23;9354:32;9351:2;;;9399:1;9396;9389:12;9351:2;9441:1;9465:53;9510:7;9501:6;9490:9;9486:22;9465:53;:::i;:::-;9455:63;;9413:115;9566:2;9591:53;9636:7;9627:6;9616:9;9612:22;9591:53;:::i;:::-;9581:63;;9538:116;9692:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9664:116;9341:446;;;;;:::o;9793:399::-;;;9916:2;9904:9;9895:7;9891:23;9887:32;9884:2;;;9932:1;9929;9922:12;9884:2;9974:1;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9946:115;10099:2;10124:51;10167:7;10158:6;10147:9;10143:22;10124:51;:::i;:::-;10114:61;;10071:114;9874:318;;;;;:::o;10198:1745::-;;;;;;;;;;10470:3;10458:9;10449:7;10445:23;10441:33;10438:2;;;10487:1;10484;10477:12;10438:2;10529:1;10553:53;10598:7;10589:6;10578:9;10574:22;10553:53;:::i;:::-;10543:63;;10501:115;10654:2;10679:51;10722:7;10713:6;10702:9;10698:22;10679:51;:::i;:::-;10669:61;;10626:114;10778:2;10803:53;10848:7;10839:6;10828:9;10824:22;10803:53;:::i;:::-;10793:63;;10750:116;10904:2;10929:53;10974:7;10965:6;10954:9;10950:22;10929:53;:::i;:::-;10919:63;;10876:116;11030:3;11056:53;11101:7;11092:6;11081:9;11077:22;11056:53;:::i;:::-;11046:63;;11002:117;11157:3;11183:53;11228:7;11219:6;11208:9;11204:22;11183:53;:::i;:::-;11173:63;;11129:117;11312:3;11301:9;11297:19;11284:33;11344:18;11336:6;11333:30;11330:2;;;11376:1;11373;11366:12;11330:2;11403:63;11458:7;11449:6;11438:9;11434:22;11403:63;:::i;:::-;11393:73;;11256:220;11542:3;11531:9;11527:19;11514:33;11574:18;11566:6;11563:30;11560:2;;;11606:1;11603;11596:12;11560:2;11633:63;11688:7;11679:6;11668:9;11664:22;11633:63;:::i;:::-;11623:73;;11486:220;11772:3;11761:9;11757:19;11744:33;11804:18;11796:6;11793:30;11790:2;;;11836:1;11833;11826:12;11790:2;11863:63;11918:7;11909:6;11898:9;11894:22;11863:63;:::i;:::-;11853:73;;11716:220;10428:1515;;;;;;;;;;;:::o;11949:689::-;;;12124:2;12112:9;12103:7;12099:23;12095:32;12092:2;;;12140:1;12137;12130:12;12092:2;12210:1;12199:9;12195:17;12182:31;12240:18;12232:6;12229:30;12226:2;;;12272:1;12269;12262:12;12226:2;12299:78;12369:7;12360:6;12349:9;12345:22;12299:78;:::i;:::-;12289:88;;12154:233;12453:2;12442:9;12438:18;12425:32;12484:18;12476:6;12473:30;12470:2;;;12516:1;12513;12506:12;12470:2;12543:78;12613:7;12604:6;12593:9;12589:22;12543:78;:::i;:::-;12533:88;;12397:234;12082:556;;;;;:::o;12644:254::-;;12749:2;12737:9;12728:7;12724:23;12720:32;12717:2;;;12765:1;12762;12755:12;12717:2;12807:1;12831:50;12873:7;12864:6;12853:9;12849:22;12831:50;:::i;:::-;12821:60;;12779:112;12707:191;;;;:::o;12904:260::-;;13012:2;13000:9;12991:7;12987:23;12983:32;12980:2;;;13028:1;13025;13018:12;12980:2;13070:1;13094:53;13139:7;13130:6;13119:9;13115:22;13094:53;:::i;:::-;13084:63;;13042:115;12970:194;;;;:::o;13170:403::-;;;13295:2;13283:9;13274:7;13270:23;13266:32;13263:2;;;13311:1;13308;13301:12;13263:2;13353:1;13377:53;13422:7;13413:6;13402:9;13398:22;13377:53;:::i;:::-;13367:63;;13325:115;13478:2;13503:53;13548:7;13539:6;13528:9;13524:22;13503:53;:::i;:::-;13493:63;;13450:116;13253:320;;;;;:::o;13579:403::-;;;13704:2;13692:9;13683:7;13679:23;13675:32;13672:2;;;13720:1;13717;13710:12;13672:2;13762:1;13786:53;13831:7;13822:6;13811:9;13807:22;13786:53;:::i;:::-;13776:63;;13734:115;13887:2;13912:53;13957:7;13948:6;13937:9;13933:22;13912:53;:::i;:::-;13902:63;;13859:116;13662:320;;;;;:::o;13988:258::-;;14095:2;14083:9;14074:7;14070:23;14066:32;14063:2;;;14111:1;14108;14101:12;14063:2;14153:1;14177:52;14221:7;14212:6;14201:9;14197:22;14177:52;:::i;:::-;14167:62;;14125:114;14053:193;;;;:::o;14252:280::-;;14370:2;14358:9;14349:7;14345:23;14341:32;14338:2;;;14386:1;14383;14376:12;14338:2;14428:1;14452:63;14507:7;14498:6;14487:9;14483:22;14452:63;:::i;:::-;14442:73;;14400:125;14328:204;;;;:::o;14538:260::-;;14646:2;14634:9;14625:7;14621:23;14617:32;14614:2;;;14662:1;14659;14652:12;14614:2;14704:1;14728:53;14773:7;14764:6;14753:9;14749:22;14728:53;:::i;:::-;14718:63;;14676:115;14604:194;;;;:::o;14804:282::-;;14923:2;14911:9;14902:7;14898:23;14894:32;14891:2;;;14939:1;14936;14929:12;14891:2;14981:1;15005:64;15061:7;15052:6;15041:9;15037:22;15005:64;:::i;:::-;14995:74;;14953:126;14881:205;;;;:::o;15092:403::-;;;15217:2;15205:9;15196:7;15192:23;15188:32;15185:2;;;15233:1;15230;15223:12;15185:2;15275:1;15299:53;15344:7;15335:6;15324:9;15320:22;15299:53;:::i;:::-;15289:63;;15247:115;15400:2;15425:53;15470:7;15461:6;15450:9;15446:22;15425:53;:::i;:::-;15415:63;;15372:116;15175:320;;;;;:::o;15501:179::-;;15591:46;15633:3;15625:6;15591:46;:::i;:::-;15669:4;15664:3;15660:14;15646:28;;15581:99;;;;:::o;15686:108::-;15763:24;15781:5;15763:24;:::i;:::-;15758:3;15751:37;15741:53;;:::o;15800:118::-;15887:24;15905:5;15887:24;:::i;:::-;15882:3;15875:37;15865:53;;:::o;15954:732::-;;16102:54;16150:5;16102:54;:::i;:::-;16172:86;16251:6;16246:3;16172:86;:::i;:::-;16165:93;;16282:56;16332:5;16282:56;:::i;:::-;16361:7;16392:1;16377:284;16402:6;16399:1;16396:13;16377:284;;;16478:6;16472:13;16505:63;16564:3;16549:13;16505:63;:::i;:::-;16498:70;;16591:60;16644:6;16591:60;:::i;:::-;16581:70;;16437:224;16424:1;16421;16417:9;16412:14;;16377:284;;;16381:14;16677:3;16670:10;;16078:608;;;;;;;:::o;16692:109::-;16773:21;16788:5;16773:21;:::i;:::-;16768:3;16761:34;16751:50;;:::o;16807:118::-;16894:24;16912:5;16894:24;:::i;:::-;16889:3;16882:37;16872:53;;:::o;16931:360::-;;17045:38;17077:5;17045:38;:::i;:::-;17099:70;17162:6;17157:3;17099:70;:::i;:::-;17092:77;;17178:52;17223:6;17218:3;17211:4;17204:5;17200:16;17178:52;:::i;:::-;17255:29;17277:6;17255:29;:::i;:::-;17250:3;17246:39;17239:46;;17021:270;;;;;:::o;17297:344::-;;17403:39;17436:5;17403:39;:::i;:::-;17458:61;17512:6;17507:3;17458:61;:::i;:::-;17451:68;;17528:52;17573:6;17568:3;17561:4;17554:5;17550:16;17528:52;:::i;:::-;17605:29;17627:6;17605:29;:::i;:::-;17600:3;17596:39;17589:46;;17379:262;;;;;:::o;17647:364::-;;17763:39;17796:5;17763:39;:::i;:::-;17818:71;17882:6;17877:3;17818:71;:::i;:::-;17811:78;;17898:52;17943:6;17938:3;17931:4;17924:5;17920:16;17898:52;:::i;:::-;17975:29;17997:6;17975:29;:::i;:::-;17970:3;17966:39;17959:46;;17739:272;;;;;:::o;18041:937::-;;18163:5;18157:12;18200:1;18189:9;18185:17;18216:1;18211:281;;;;18506:1;18501:471;;;;18178:794;;18211:281;18301:4;18297:1;18286:9;18282:17;18278:28;18326:71;18390:6;18385:3;18326:71;:::i;:::-;18319:78;;18441:4;18437:9;18426;18422:25;18417:3;18410:38;18477:4;18472:3;18468:14;18461:21;;18218:274;18211:281;;18501:471;18582:1;18571:9;18567:17;18604:71;18668:6;18663:3;18604:71;:::i;:::-;18597:78;;18703:38;18735:5;18703:38;:::i;:::-;18763:1;18777:154;18791:6;18788:1;18785:13;18777:154;;;18865:7;18859:14;18855:1;18850:3;18846:11;18839:35;18915:1;18906:7;18902:15;18891:26;;18813:4;18810:1;18806:12;18801:17;;18777:154;;;18960:1;18955:3;18951:11;18944:18;;18508:464;;;18178:794;;18130:848;;;;;:::o;18984:384::-;;19147:67;19211:2;19206:3;19147:67;:::i;:::-;19140:74;;19244:34;19240:1;19235:3;19231:11;19224:55;19310:22;19305:2;19300:3;19296:12;19289:44;19359:2;19354:3;19350:12;19343:19;;19130:238;;;:::o;19374:385::-;;19537:67;19601:2;19596:3;19537:67;:::i;:::-;19530:74;;19634:34;19630:1;19625:3;19621:11;19614:55;19700:23;19695:2;19690:3;19686:12;19679:45;19750:2;19745:3;19741:12;19734:19;;19520:239;;;:::o;19765:366::-;;19928:67;19992:2;19987:3;19928:67;:::i;:::-;19921:74;;20025:34;20021:1;20016:3;20012:11;20005:55;20091:4;20086:2;20081:3;20077:12;20070:26;20122:2;20117:3;20113:12;20106:19;;19911:220;;;:::o;20137:372::-;;20300:67;20364:2;20359:3;20300:67;:::i;:::-;20293:74;;20397:34;20393:1;20388:3;20384:11;20377:55;20463:10;20458:2;20453:3;20449:12;20442:32;20500:2;20495:3;20491:12;20484:19;;20283:226;;;:::o;20515:379::-;;20678:67;20742:2;20737:3;20678:67;:::i;:::-;20671:74;;20775:34;20771:1;20766:3;20762:11;20755:55;20841:17;20836:2;20831:3;20827:12;20820:39;20885:2;20880:3;20876:12;20869:19;;20661:233;;;:::o;20900:373::-;;21063:67;21127:2;21122:3;21063:67;:::i;:::-;21056:74;;21160:34;21156:1;21151:3;21147:11;21140:55;21226:11;21221:2;21216:3;21212:12;21205:33;21264:2;21259:3;21255:12;21248:19;;21046:227;;;:::o;21279:375::-;;21442:67;21506:2;21501:3;21442:67;:::i;:::-;21435:74;;21539:34;21535:1;21530:3;21526:11;21519:55;21605:13;21600:2;21595:3;21591:12;21584:35;21645:2;21640:3;21636:12;21629:19;;21425:229;;;:::o;21660:326::-;;21823:67;21887:2;21882:3;21823:67;:::i;:::-;21816:74;;21920:30;21916:1;21911:3;21907:11;21900:51;21977:2;21972:3;21968:12;21961:19;;21806:180;;;:::o;21992:368::-;;22155:67;22219:2;22214:3;22155:67;:::i;:::-;22148:74;;22252:34;22248:1;22243:3;22239:11;22232:55;22318:6;22313:2;22308:3;22304:12;22297:28;22351:2;22346:3;22342:12;22335:19;;22138:222;;;:::o;22366:325::-;;22529:67;22593:2;22588:3;22529:67;:::i;:::-;22522:74;;22626:29;22622:1;22617:3;22613:11;22606:50;22682:2;22677:3;22673:12;22666:19;;22512:179;;;:::o;22697:366::-;;22860:67;22924:2;22919:3;22860:67;:::i;:::-;22853:74;;22957:34;22953:1;22948:3;22944:11;22937:55;23023:4;23018:2;23013:3;23009:12;23002:26;23054:2;23049:3;23045:12;23038:19;;22843:220;;;:::o;23069:382::-;;23232:67;23296:2;23291:3;23232:67;:::i;:::-;23225:74;;23329:34;23325:1;23320:3;23316:11;23309:55;23395:20;23390:2;23385:3;23381:12;23374:42;23442:2;23437:3;23433:12;23426:19;;23215:236;;;:::o;23457:373::-;;23620:67;23684:2;23679:3;23620:67;:::i;:::-;23613:74;;23717:34;23713:1;23708:3;23704:11;23697:55;23783:11;23778:2;23773:3;23769:12;23762:33;23821:2;23816:3;23812:12;23805:19;;23603:227;;;:::o;23836:436::-;;23999:67;24063:2;24058:3;23999:67;:::i;:::-;23992:74;;24096:34;24092:1;24087:3;24083:11;24076:55;24162:34;24157:2;24152:3;24148:12;24141:56;24228:8;24223:2;24218:3;24214:12;24207:30;24263:2;24258:3;24254:12;24247:19;;23982:290;;;:::o;24278:374::-;;24441:67;24505:2;24500:3;24441:67;:::i;:::-;24434:74;;24538:34;24534:1;24529:3;24525:11;24518:55;24604:12;24599:2;24594:3;24590:12;24583:34;24643:2;24638:3;24634:12;24627:19;;24424:228;;;:::o;24658:373::-;;24821:67;24885:2;24880:3;24821:67;:::i;:::-;24814:74;;24918:34;24914:1;24909:3;24905:11;24898:55;24984:11;24979:2;24974:3;24970:12;24963:33;25022:2;25017:3;25013:12;25006:19;;24804:227;;;:::o;25037:383::-;;25200:67;25264:2;25259:3;25200:67;:::i;:::-;25193:74;;25297:34;25293:1;25288:3;25284:11;25277:55;25363:21;25358:2;25353:3;25349:12;25342:43;25411:2;25406:3;25402:12;25395:19;;25183:237;;;:::o;25426:380::-;;25589:67;25653:2;25648:3;25589:67;:::i;:::-;25582:74;;25686:34;25682:1;25677:3;25673:11;25666:55;25752:18;25747:2;25742:3;25738:12;25731:40;25797:2;25792:3;25788:12;25781:19;;25572:234;;;:::o;25812:384::-;;25975:67;26039:2;26034:3;25975:67;:::i;:::-;25968:74;;26072:34;26068:1;26063:3;26059:11;26052:55;26138:22;26133:2;26128:3;26124:12;26117:44;26187:2;26182:3;26178:12;26171:19;;25958:238;;;:::o;26202:387::-;;26365:67;26429:2;26424:3;26365:67;:::i;:::-;26358:74;;26462:34;26458:1;26453:3;26449:11;26442:55;26528:25;26523:2;26518:3;26514:12;26507:47;26580:2;26575:3;26571:12;26564:19;;26348:241;;;:::o;26595:369::-;;26758:67;26822:2;26817:3;26758:67;:::i;:::-;26751:74;;26855:34;26851:1;26846:3;26842:11;26835:55;26921:7;26916:2;26911:3;26907:12;26900:29;26955:2;26950:3;26946:12;26939:19;;26741:223;;;:::o;26970:382::-;;27133:67;27197:2;27192:3;27133:67;:::i;:::-;27126:74;;27230:34;27226:1;27221:3;27217:11;27210:55;27296:20;27291:2;27286:3;27282:12;27275:42;27343:2;27338:3;27334:12;27327:19;;27116:236;;;:::o;27358:378::-;;27521:67;27585:2;27580:3;27521:67;:::i;:::-;27514:74;;27618:34;27614:1;27609:3;27605:11;27598:55;27684:16;27679:2;27674:3;27670:12;27663:38;27727:2;27722:3;27718:12;27711:19;;27504:232;;;:::o;27742:367::-;;27905:67;27969:2;27964:3;27905:67;:::i;:::-;27898:74;;28002:34;27998:1;27993:3;27989:11;27982:55;28068:5;28063:2;28058:3;28054:12;28047:27;28100:2;28095:3;28091:12;28084:19;;27888:221;;;:::o;28115:386::-;;28278:67;28342:2;28337:3;28278:67;:::i;:::-;28271:74;;28375:34;28371:1;28366:3;28362:11;28355:55;28441:24;28436:2;28431:3;28427:12;28420:46;28492:2;28487:3;28483:12;28476:19;;28261:240;;;:::o;28507:382::-;;28670:67;28734:2;28729:3;28670:67;:::i;:::-;28663:74;;28767:34;28763:1;28758:3;28754:11;28747:55;28833:20;28828:2;28823:3;28819:12;28812:42;28880:2;28875:3;28871:12;28864:19;;28653:236;;;:::o;28895:380::-;;29058:67;29122:2;29117:3;29058:67;:::i;:::-;29051:74;;29155:34;29151:1;29146:3;29142:11;29135:55;29221:18;29216:2;29211:3;29207:12;29200:40;29266:2;29261:3;29257:12;29250:19;;29041:234;;;:::o;29281:370::-;;29444:67;29508:2;29503:3;29444:67;:::i;:::-;29437:74;;29541:34;29537:1;29532:3;29528:11;29521:55;29607:8;29602:2;29597:3;29593:12;29586:30;29642:2;29637:3;29633:12;29626:19;;29427:224;;;:::o;29657:432::-;;29820:67;29884:2;29879:3;29820:67;:::i;:::-;29813:74;;29917:34;29913:1;29908:3;29904:11;29897:55;29983:34;29978:2;29973:3;29969:12;29962:56;30049:4;30044:2;30039:3;30035:12;30028:26;30080:2;30075:3;30071:12;30064:19;;29803:286;;;:::o;30095:387::-;;30258:67;30322:2;30317:3;30258:67;:::i;:::-;30251:74;;30355:34;30351:1;30346:3;30342:11;30335:55;30421:25;30416:2;30411:3;30407:12;30400:47;30473:2;30468:3;30464:12;30457:19;;30241:241;;;:::o;30488:378::-;;30651:67;30715:2;30710:3;30651:67;:::i;:::-;30644:74;;30748:34;30744:1;30739:3;30735:11;30728:55;30814:16;30809:2;30804:3;30800:12;30793:38;30857:2;30852:3;30848:12;30841:19;;30634:232;;;:::o;30872:383::-;;31035:67;31099:2;31094:3;31035:67;:::i;:::-;31028:74;;31132:34;31128:1;31123:3;31119:11;31112:55;31198:21;31193:2;31188:3;31184:12;31177:43;31246:2;31241:3;31237:12;31230:19;;31018:237;;;:::o;31261:454::-;;31424:67;31488:2;31483:3;31424:67;:::i;:::-;31417:74;;31521:34;31517:1;31512:3;31508:11;31501:55;31587:34;31582:2;31577:3;31573:12;31566:56;31653:26;31648:2;31643:3;31639:12;31632:48;31706:2;31701:3;31697:12;31690:19;;31407:308;;;:::o;31721:396::-;;31884:67;31948:2;31943:3;31884:67;:::i;:::-;31877:74;;31981:34;31977:1;31972:3;31968:11;31961:55;32047:34;32042:2;32037:3;32033:12;32026:56;32108:2;32103:3;32099:12;32092:19;;31867:250;;;:::o;32123:371::-;;32286:67;32350:2;32345:3;32286:67;:::i;:::-;32279:74;;32383:34;32379:1;32374:3;32370:11;32363:55;32449:9;32444:2;32439:3;32435:12;32428:31;32485:2;32480:3;32476:12;32469:19;;32269:225;;;:::o;32500:373::-;;32663:67;32727:2;32722:3;32663:67;:::i;:::-;32656:74;;32760:34;32756:1;32751:3;32747:11;32740:55;32826:11;32821:2;32816:3;32812:12;32805:33;32864:2;32859:3;32855:12;32848:19;;32646:227;;;:::o;32879:373::-;;33042:67;33106:2;33101:3;33042:67;:::i;:::-;33035:74;;33139:34;33135:1;33130:3;33126:11;33119:55;33205:11;33200:2;33195:3;33191:12;33184:33;33243:2;33238:3;33234:12;33227:19;;33025:227;;;:::o;33258:380::-;;33421:67;33485:2;33480:3;33421:67;:::i;:::-;33414:74;;33518:34;33514:1;33509:3;33505:11;33498:55;33584:18;33579:2;33574:3;33570:12;33563:40;33629:2;33624:3;33620:12;33613:19;;33404:234;;;:::o;33644:372::-;;33807:67;33871:2;33866:3;33807:67;:::i;:::-;33800:74;;33904:34;33900:1;33895:3;33891:11;33884:55;33970:10;33965:2;33960:3;33956:12;33949:32;34007:2;34002:3;33998:12;33991:19;;33790:226;;;:::o;34022:365::-;;34185:67;34249:2;34244:3;34185:67;:::i;:::-;34178:74;;34282:34;34278:1;34273:3;34269:11;34262:55;34348:3;34343:2;34338:3;34334:12;34327:25;34378:2;34373:3;34369:12;34362:19;;34168:219;;;:::o;34393:393::-;;34556:67;34620:2;34615:3;34556:67;:::i;:::-;34549:74;;34653:34;34649:1;34644:3;34640:11;34633:55;34719:31;34714:2;34709:3;34705:12;34698:53;34777:2;34772:3;34768:12;34761:19;;34539:247;;;:::o;34792:368::-;;34955:67;35019:2;35014:3;34955:67;:::i;:::-;34948:74;;35052:34;35048:1;35043:3;35039:11;35032:55;35118:6;35113:2;35108:3;35104:12;35097:28;35151:2;35146:3;35142:12;35135:19;;34938:222;;;:::o;35166:379::-;;35329:67;35393:2;35388:3;35329:67;:::i;:::-;35322:74;;35426:34;35422:1;35417:3;35413:11;35406:55;35492:17;35487:2;35482:3;35478:12;35471:39;35536:2;35531:3;35527:12;35520:19;;35312:233;;;:::o;35551:441::-;;35714:67;35778:2;35773:3;35714:67;:::i;:::-;35707:74;;35811:34;35807:1;35802:3;35798:11;35791:55;35877:34;35872:2;35867:3;35863:12;35856:56;35943:13;35938:2;35933:3;35929:12;35922:35;35983:2;35978:3;35974:12;35967:19;;35697:295;;;:::o;36110:2405::-;;36287:6;36282:3;36278:16;36379:4;36372:5;36368:16;36362:23;36398:63;36455:4;36450:3;36446:14;36432:12;36398:63;:::i;:::-;36304:167;36560:4;36553:5;36549:16;36543:23;36579:59;36632:4;36627:3;36623:14;36609:12;36579:59;:::i;:::-;36481:167;36732:4;36725:5;36721:16;36715:23;36751:63;36808:4;36803:3;36799:14;36785:12;36751:63;:::i;:::-;36658:166;36908:4;36901:5;36897:16;36891:23;36927:63;36984:4;36979:3;36975:14;36961:12;36927:63;:::i;:::-;36834:166;37086:4;37079:5;37075:16;37069:23;37105:63;37162:4;37157:3;37153:14;37139:12;37105:63;:::i;:::-;37010:168;37264:4;37257:5;37253:16;37247:23;37283:63;37340:4;37335:3;37331:14;37317:12;37283:63;:::i;:::-;37188:168;37445:4;37438:5;37434:16;37428:23;37464:63;37521:4;37516:3;37512:14;37498:12;37464:63;:::i;:::-;37366:171;37634:4;37627:5;37623:16;37617:23;37653:63;37710:4;37705:3;37701:14;37687:12;37653:63;:::i;:::-;37547:179;37812:6;37805:5;37801:18;37795:25;37869:3;37863:4;37859:14;37850:6;37845:3;37841:16;37834:40;37895:73;37963:4;37949:12;37895:73;:::i;:::-;37887:81;;37736:243;38065:6;38058:5;38054:18;38048:25;38122:3;38116:4;38112:14;38103:6;38098:3;38094:16;38087:40;38148:73;38216:4;38202:12;38148:73;:::i;:::-;38140:81;;37989:243;38321:6;38314:5;38310:18;38304:25;38378:3;38372:4;38368:14;38359:6;38354:3;38350:16;38343:40;38404:73;38472:4;38458:12;38404:73;:::i;:::-;38396:81;;38242:246;38505:4;38498:11;;36256:2259;;;;;:::o;38521:108::-;38598:24;38616:5;38598:24;:::i;:::-;38593:3;38586:37;38576:53;;:::o;38635:118::-;38722:24;38740:5;38722:24;:::i;:::-;38717:3;38710:37;38700:53;;:::o;38759:102::-;38832:22;38848:5;38832:22;:::i;:::-;38827:3;38820:35;38810:51;;:::o;38867:112::-;38950:22;38966:5;38950:22;:::i;:::-;38945:3;38938:35;38928:51;;:::o;38985:222::-;;39116:2;39105:9;39101:18;39093:26;;39129:71;39197:1;39186:9;39182:17;39173:6;39129:71;:::i;:::-;39083:124;;;;:::o;39213:1053::-;;39574:3;39563:9;39559:19;39551:27;;39588:71;39656:1;39645:9;39641:17;39632:6;39588:71;:::i;:::-;39669:72;39737:2;39726:9;39722:18;39713:6;39669:72;:::i;:::-;39788:9;39782:4;39778:20;39773:2;39762:9;39758:18;39751:48;39816:108;39919:4;39910:6;39816:108;:::i;:::-;39808:116;;39971:9;39965:4;39961:20;39956:2;39945:9;39941:18;39934:48;39999:108;40102:4;40093:6;39999:108;:::i;:::-;39991:116;;40155:9;40149:4;40145:20;40139:3;40128:9;40124:19;40117:49;40183:76;40254:4;40245:6;40183:76;:::i;:::-;40175:84;;39541:725;;;;;;;;:::o;40272:751::-;;40533:3;40522:9;40518:19;40510:27;;40547:71;40615:1;40604:9;40600:17;40591:6;40547:71;:::i;:::-;40628:72;40696:2;40685:9;40681:18;40672:6;40628:72;:::i;:::-;40710;40778:2;40767:9;40763:18;40754:6;40710:72;:::i;:::-;40792;40860:2;40849:9;40845:18;40836:6;40792:72;:::i;:::-;40912:9;40906:4;40902:20;40896:3;40885:9;40881:19;40874:49;40940:76;41011:4;41002:6;40940:76;:::i;:::-;40932:84;;40500:523;;;;;;;;:::o;41029:332::-;;41188:2;41177:9;41173:18;41165:26;;41201:71;41269:1;41258:9;41254:17;41245:6;41201:71;:::i;:::-;41282:72;41350:2;41339:9;41335:18;41326:6;41282:72;:::i;:::-;41155:206;;;;;:::o;41367:373::-;;41548:2;41537:9;41533:18;41525:26;;41597:9;41591:4;41587:20;41583:1;41572:9;41568:17;41561:47;41625:108;41728:4;41719:6;41625:108;:::i;:::-;41617:116;;41515:225;;;;:::o;41746:634::-;;42005:2;41994:9;41990:18;41982:26;;42054:9;42048:4;42044:20;42040:1;42029:9;42025:17;42018:47;42082:108;42185:4;42176:6;42082:108;:::i;:::-;42074:116;;42237:9;42231:4;42227:20;42222:2;42211:9;42207:18;42200:48;42265:108;42368:4;42359:6;42265:108;:::i;:::-;42257:116;;41972:408;;;;;:::o;42386:210::-;;42511:2;42500:9;42496:18;42488:26;;42524:65;42586:1;42575:9;42571:17;42562:6;42524:65;:::i;:::-;42478:118;;;;:::o;42602:604::-;;42815:3;42804:9;42800:19;42792:27;;42829:65;42891:1;42880:9;42876:17;42867:6;42829:65;:::i;:::-;42904:66;42966:2;42955:9;42951:18;42942:6;42904:66;:::i;:::-;42980;43042:2;43031:9;43027:18;43018:6;42980:66;:::i;:::-;43056;43118:2;43107:9;43103:18;43094:6;43056:66;:::i;:::-;43132:67;43194:3;43183:9;43179:19;43170:6;43132:67;:::i;:::-;42782:424;;;;;;;;:::o;43212:222::-;;43343:2;43332:9;43328:18;43320:26;;43356:71;43424:1;43413:9;43409:17;43400:6;43356:71;:::i;:::-;43310:124;;;;:::o;43440:313::-;;43591:2;43580:9;43576:18;43568:26;;43640:9;43634:4;43630:20;43626:1;43615:9;43611:17;43604:47;43668:78;43741:4;43732:6;43668:78;:::i;:::-;43660:86;;43558:195;;;;:::o;43759:419::-;;43963:2;43952:9;43948:18;43940:26;;44012:9;44006:4;44002:20;43998:1;43987:9;43983:17;43976:47;44040:131;44166:4;44040:131;:::i;:::-;44032:139;;43930:248;;;:::o;44184:419::-;;44388:2;44377:9;44373:18;44365:26;;44437:9;44431:4;44427:20;44423:1;44412:9;44408:17;44401:47;44465:131;44591:4;44465:131;:::i;:::-;44457:139;;44355:248;;;:::o;44609:419::-;;44813:2;44802:9;44798:18;44790:26;;44862:9;44856:4;44852:20;44848:1;44837:9;44833:17;44826:47;44890:131;45016:4;44890:131;:::i;:::-;44882:139;;44780:248;;;:::o;45034:419::-;;45238:2;45227:9;45223:18;45215:26;;45287:9;45281:4;45277:20;45273:1;45262:9;45258:17;45251:47;45315:131;45441:4;45315:131;:::i;:::-;45307:139;;45205:248;;;:::o;45459:419::-;;45663:2;45652:9;45648:18;45640:26;;45712:9;45706:4;45702:20;45698:1;45687:9;45683:17;45676:47;45740:131;45866:4;45740:131;:::i;:::-;45732:139;;45630:248;;;:::o;45884:419::-;;46088:2;46077:9;46073:18;46065:26;;46137:9;46131:4;46127:20;46123:1;46112:9;46108:17;46101:47;46165:131;46291:4;46165:131;:::i;:::-;46157:139;;46055:248;;;:::o;46309:419::-;;46513:2;46502:9;46498:18;46490:26;;46562:9;46556:4;46552:20;46548:1;46537:9;46533:17;46526:47;46590:131;46716:4;46590:131;:::i;:::-;46582:139;;46480:248;;;:::o;46734:419::-;;46938:2;46927:9;46923:18;46915:26;;46987:9;46981:4;46977:20;46973:1;46962:9;46958:17;46951:47;47015:131;47141:4;47015:131;:::i;:::-;47007:139;;46905:248;;;:::o;47159:419::-;;47363:2;47352:9;47348:18;47340:26;;47412:9;47406:4;47402:20;47398:1;47387:9;47383:17;47376:47;47440:131;47566:4;47440:131;:::i;:::-;47432:139;;47330:248;;;:::o;47584:419::-;;47788:2;47777:9;47773:18;47765:26;;47837:9;47831:4;47827:20;47823:1;47812:9;47808:17;47801:47;47865:131;47991:4;47865:131;:::i;:::-;47857:139;;47755:248;;;:::o;48009:419::-;;48213:2;48202:9;48198:18;48190:26;;48262:9;48256:4;48252:20;48248:1;48237:9;48233:17;48226:47;48290:131;48416:4;48290:131;:::i;:::-;48282:139;;48180:248;;;:::o;48434:419::-;;48638:2;48627:9;48623:18;48615:26;;48687:9;48681:4;48677:20;48673:1;48662:9;48658:17;48651:47;48715:131;48841:4;48715:131;:::i;:::-;48707:139;;48605:248;;;:::o;48859:419::-;;49063:2;49052:9;49048:18;49040:26;;49112:9;49106:4;49102:20;49098:1;49087:9;49083:17;49076:47;49140:131;49266:4;49140:131;:::i;:::-;49132:139;;49030:248;;;:::o;49284:419::-;;49488:2;49477:9;49473:18;49465:26;;49537:9;49531:4;49527:20;49523:1;49512:9;49508:17;49501:47;49565:131;49691:4;49565:131;:::i;:::-;49557:139;;49455:248;;;:::o;49709:419::-;;49913:2;49902:9;49898:18;49890:26;;49962:9;49956:4;49952:20;49948:1;49937:9;49933:17;49926:47;49990:131;50116:4;49990:131;:::i;:::-;49982:139;;49880:248;;;:::o;50134:419::-;;50338:2;50327:9;50323:18;50315:26;;50387:9;50381:4;50377:20;50373:1;50362:9;50358:17;50351:47;50415:131;50541:4;50415:131;:::i;:::-;50407:139;;50305:248;;;:::o;50559:419::-;;50763:2;50752:9;50748:18;50740:26;;50812:9;50806:4;50802:20;50798:1;50787:9;50783:17;50776:47;50840:131;50966:4;50840:131;:::i;:::-;50832:139;;50730:248;;;:::o;50984:419::-;;51188:2;51177:9;51173:18;51165:26;;51237:9;51231:4;51227:20;51223:1;51212:9;51208:17;51201:47;51265:131;51391:4;51265:131;:::i;:::-;51257:139;;51155:248;;;:::o;51409:419::-;;51613:2;51602:9;51598:18;51590:26;;51662:9;51656:4;51652:20;51648:1;51637:9;51633:17;51626:47;51690:131;51816:4;51690:131;:::i;:::-;51682:139;;51580:248;;;:::o;51834:419::-;;52038:2;52027:9;52023:18;52015:26;;52087:9;52081:4;52077:20;52073:1;52062:9;52058:17;52051:47;52115:131;52241:4;52115:131;:::i;:::-;52107:139;;52005:248;;;:::o;52259:419::-;;52463:2;52452:9;52448:18;52440:26;;52512:9;52506:4;52502:20;52498:1;52487:9;52483:17;52476:47;52540:131;52666:4;52540:131;:::i;:::-;52532:139;;52430:248;;;:::o;52684:419::-;;52888:2;52877:9;52873:18;52865:26;;52937:9;52931:4;52927:20;52923:1;52912:9;52908:17;52901:47;52965:131;53091:4;52965:131;:::i;:::-;52957:139;;52855:248;;;:::o;53109:419::-;;53313:2;53302:9;53298:18;53290:26;;53362:9;53356:4;53352:20;53348:1;53337:9;53333:17;53326:47;53390:131;53516:4;53390:131;:::i;:::-;53382:139;;53280:248;;;:::o;53534:419::-;;53738:2;53727:9;53723:18;53715:26;;53787:9;53781:4;53777:20;53773:1;53762:9;53758:17;53751:47;53815:131;53941:4;53815:131;:::i;:::-;53807:139;;53705:248;;;:::o;53959:419::-;;54163:2;54152:9;54148:18;54140:26;;54212:9;54206:4;54202:20;54198:1;54187:9;54183:17;54176:47;54240:131;54366:4;54240:131;:::i;:::-;54232:139;;54130:248;;;:::o;54384:419::-;;54588:2;54577:9;54573:18;54565:26;;54637:9;54631:4;54627:20;54623:1;54612:9;54608:17;54601:47;54665:131;54791:4;54665:131;:::i;:::-;54657:139;;54555:248;;;:::o;54809:419::-;;55013:2;55002:9;54998:18;54990:26;;55062:9;55056:4;55052:20;55048:1;55037:9;55033:17;55026:47;55090:131;55216:4;55090:131;:::i;:::-;55082:139;;54980:248;;;:::o;55234:419::-;;55438:2;55427:9;55423:18;55415:26;;55487:9;55481:4;55477:20;55473:1;55462:9;55458:17;55451:47;55515:131;55641:4;55515:131;:::i;:::-;55507:139;;55405:248;;;:::o;55659:419::-;;55863:2;55852:9;55848:18;55840:26;;55912:9;55906:4;55902:20;55898:1;55887:9;55883:17;55876:47;55940:131;56066:4;55940:131;:::i;:::-;55932:139;;55830:248;;;:::o;56084:419::-;;56288:2;56277:9;56273:18;56265:26;;56337:9;56331:4;56327:20;56323:1;56312:9;56308:17;56301:47;56365:131;56491:4;56365:131;:::i;:::-;56357:139;;56255:248;;;:::o;56509:419::-;;56713:2;56702:9;56698:18;56690:26;;56762:9;56756:4;56752:20;56748:1;56737:9;56733:17;56726:47;56790:131;56916:4;56790:131;:::i;:::-;56782:139;;56680:248;;;:::o;56934:419::-;;57138:2;57127:9;57123:18;57115:26;;57187:9;57181:4;57177:20;57173:1;57162:9;57158:17;57151:47;57215:131;57341:4;57215:131;:::i;:::-;57207:139;;57105:248;;;:::o;57359:419::-;;57563:2;57552:9;57548:18;57540:26;;57612:9;57606:4;57602:20;57598:1;57587:9;57583:17;57576:47;57640:131;57766:4;57640:131;:::i;:::-;57632:139;;57530:248;;;:::o;57784:419::-;;57988:2;57977:9;57973:18;57965:26;;58037:9;58031:4;58027:20;58023:1;58012:9;58008:17;58001:47;58065:131;58191:4;58065:131;:::i;:::-;58057:139;;57955:248;;;:::o;58209:419::-;;58413:2;58402:9;58398:18;58390:26;;58462:9;58456:4;58452:20;58448:1;58437:9;58433:17;58426:47;58490:131;58616:4;58490:131;:::i;:::-;58482:139;;58380:248;;;:::o;58634:419::-;;58838:2;58827:9;58823:18;58815:26;;58887:9;58881:4;58877:20;58873:1;58862:9;58858:17;58851:47;58915:131;59041:4;58915:131;:::i;:::-;58907:139;;58805:248;;;:::o;59059:419::-;;59263:2;59252:9;59248:18;59240:26;;59312:9;59306:4;59302:20;59298:1;59287:9;59283:17;59276:47;59340:131;59466:4;59340:131;:::i;:::-;59332:139;;59230:248;;;:::o;59484:419::-;;59688:2;59677:9;59673:18;59665:26;;59737:9;59731:4;59727:20;59723:1;59712:9;59708:17;59701:47;59765:131;59891:4;59765:131;:::i;:::-;59757:139;;59655:248;;;:::o;59909:419::-;;60113:2;60102:9;60098:18;60090:26;;60162:9;60156:4;60152:20;60148:1;60137:9;60133:17;60126:47;60190:131;60316:4;60190:131;:::i;:::-;60182:139;;60080:248;;;:::o;60334:419::-;;60538:2;60527:9;60523:18;60515:26;;60587:9;60581:4;60577:20;60573:1;60562:9;60558:17;60551:47;60615:131;60741:4;60615:131;:::i;:::-;60607:139;;60505:248;;;:::o;60759:419::-;;60963:2;60952:9;60948:18;60940:26;;61012:9;61006:4;61002:20;60998:1;60987:9;60983:17;60976:47;61040:131;61166:4;61040:131;:::i;:::-;61032:139;;60930:248;;;:::o;61184:419::-;;61388:2;61377:9;61373:18;61365:26;;61437:9;61431:4;61427:20;61423:1;61412:9;61408:17;61401:47;61465:131;61591:4;61465:131;:::i;:::-;61457:139;;61355:248;;;:::o;61609:419::-;;61813:2;61802:9;61798:18;61790:26;;61862:9;61856:4;61852:20;61848:1;61837:9;61833:17;61826:47;61890:131;62016:4;61890:131;:::i;:::-;61882:139;;61780:248;;;:::o;62034:419::-;;62238:2;62227:9;62223:18;62215:26;;62287:9;62281:4;62277:20;62273:1;62262:9;62258:17;62251:47;62315:131;62441:4;62315:131;:::i;:::-;62307:139;;62205:248;;;:::o;62459:417::-;;62662:2;62651:9;62647:18;62639:26;;62711:9;62705:4;62701:20;62697:1;62686:9;62682:17;62675:47;62739:130;62864:4;62855:6;62739:130;:::i;:::-;62731:138;;62629:247;;;;:::o;62882:222::-;;63013:2;63002:9;62998:18;62990:26;;63026:71;63094:1;63083:9;63079:17;63070:6;63026:71;:::i;:::-;62980:124;;;;:::o;63110:332::-;;63269:2;63258:9;63254:18;63246:26;;63282:71;63350:1;63339:9;63335:17;63326:6;63282:71;:::i;:::-;63363:72;63431:2;63420:9;63416:18;63407:6;63363:72;:::i;:::-;63236:206;;;;;:::o;63448:1579::-;;63907:3;63896:9;63892:19;63884:27;;63921:71;63989:1;63978:9;63974:17;63965:6;63921:71;:::i;:::-;64002:72;64070:2;64059:9;64055:18;64046:6;64002:72;:::i;:::-;64084;64152:2;64141:9;64137:18;64128:6;64084:72;:::i;:::-;64166:68;64230:2;64219:9;64215:18;64206:6;64166:68;:::i;:::-;64244:73;64312:3;64301:9;64297:19;64288:6;64244:73;:::i;:::-;64327;64395:3;64384:9;64380:19;64371:6;64327:73;:::i;:::-;64410;64478:3;64467:9;64463:19;64454:6;64410:73;:::i;:::-;64493;64561:3;64550:9;64546:19;64537:6;64493:73;:::i;:::-;64614:9;64608:4;64604:20;64598:3;64587:9;64583:19;64576:49;64642:75;64712:4;64703:6;64642:75;:::i;:::-;64634:83;;64765:9;64759:4;64755:20;64749:3;64738:9;64734:19;64727:49;64793:75;64863:4;64854:6;64793:75;:::i;:::-;64785:83;;64916:9;64910:4;64906:20;64900:3;64889:9;64885:19;64878:49;64944:76;65015:4;65005:7;64944:76;:::i;:::-;64936:84;;63874:1153;;;;;;;;;;;;;;:::o;65033:278::-;;65099:2;65093:9;65083:19;;65141:4;65133:6;65129:17;65248:6;65236:10;65233:22;65212:18;65200:10;65197:34;65194:62;65191:2;;;65259:13;;:::i;:::-;65191:2;65294:10;65290:2;65283:22;65073:238;;;;:::o;65317:306::-;;65484:18;65476:6;65473:30;65470:2;;;65506:13;;:::i;:::-;65470:2;65551:4;65543:6;65539:17;65531:25;;65611:4;65605;65601:15;65593:23;;65399:224;;;:::o;65629:306::-;;65796:18;65788:6;65785:30;65782:2;;;65818:13;;:::i;:::-;65782:2;65863:4;65855:6;65851:17;65843:25;;65923:4;65917;65913:15;65905:23;;65711:224;;;:::o;65941:326::-;;66092:18;66084:6;66081:30;66078:2;;;66114:13;;:::i;:::-;66078:2;66194:4;66190:9;66183:4;66175:6;66171:17;66167:33;66159:41;;66255:4;66249;66245:15;66237:23;;66007:260;;;:::o;66273:327::-;;66425:18;66417:6;66414:30;66411:2;;;66447:13;;:::i;:::-;66411:2;66527:4;66523:9;66516:4;66508:6;66504:17;66500:33;66492:41;;66588:4;66582;66578:15;66570:23;;66340:260;;;:::o;66606:132::-;;66696:3;66688:11;;66726:4;66721:3;66717:14;66709:22;;66678:60;;;:::o;66744:141::-;;66816:3;66808:11;;66839:3;66836:1;66829:14;66873:4;66870:1;66860:18;66852:26;;66798:87;;;:::o;66891:114::-;;66992:5;66986:12;66976:22;;66965:40;;;:::o;67011:98::-;;67096:5;67090:12;67080:22;;67069:40;;;:::o;67115:99::-;;67201:5;67195:12;67185:22;;67174:40;;;:::o;67220:113::-;;67322:4;67317:3;67313:14;67305:22;;67295:38;;;:::o;67339:184::-;;67472:6;67467:3;67460:19;67512:4;67507:3;67503:14;67488:29;;67450:73;;;;:::o;67529:168::-;;67646:6;67641:3;67634:19;67686:4;67681:3;67677:14;67662:29;;67624:73;;;;:::o;67703:159::-;;67811:6;67806:3;67799:19;67851:4;67846:3;67842:14;67827:29;;67789:73;;;;:::o;67868:169::-;;67986:6;67981:3;67974:19;68026:4;68021:3;68017:14;68002:29;;67964:73;;;;:::o;68043:96::-;;68109:24;68127:5;68109:24;:::i;:::-;68098:35;;68088:51;;;:::o;68145:90::-;;68222:5;68215:13;68208:21;68197:32;;68187:48;;;:::o;68241:77::-;;68307:5;68296:16;;68286:32;;;:::o;68324:149::-;;68400:66;68393:5;68389:78;68378:89;;68368:105;;;:::o;68479:126::-;;68556:42;68549:5;68545:54;68534:65;;68524:81;;;:::o;68611:77::-;;68677:5;68666:16;;68656:32;;;:::o;68694:86::-;;68769:4;68762:5;68758:16;68747:27;;68737:43;;;:::o;68786:154::-;68870:6;68865:3;68860;68847:30;68932:1;68923:6;68918:3;68914:16;68907:27;68837:103;;;:::o;68946:307::-;69014:1;69024:113;69038:6;69035:1;69032:13;69024:113;;;69123:1;69118:3;69114:11;69108:18;69104:1;69099:3;69095:11;69088:39;69060:2;69057:1;69053:10;69048:15;;69024:113;;;69155:6;69152:1;69149:13;69146:2;;;69235:1;69226:6;69221:3;69217:16;69210:27;69146:2;68995:258;;;;:::o;69259:48::-;69292:9;69313:102;;69405:2;69401:7;69396:2;69389:5;69385:14;69381:28;69371:38;;69361:54;;;:::o;69421:106::-;;69514:5;69509:3;69505:15;69484:36;;69474:53;;;:::o;69533:833::-;;69610:4;69592:16;69589:26;69586:2;;;69618:5;;69586:2;69656:1;69653;69650;69635:23;69678:34;69709:1;69703:8;69678:34;:::i;:::-;69739:10;69734:3;69731:19;69721:2;;69754:5;;;69721:2;69789;69783:9;69847:1;69829:16;69825:24;69822:1;69816:4;69801:49;69880:4;69874:11;69979:16;69972:4;69964:6;69960:17;69957:39;69924:18;69916:6;69913:30;69897:113;69894:2;;;70025:5;;;;;69894:2;70071:6;70065:4;70061:17;70107:3;70101:10;70134:18;70126:6;70123:30;70120:2;;;70156:5;;;;;;;70120:2;70204:6;70197:4;70192:3;70188:14;70184:27;70241:16;70235:4;70231:27;70226:3;70223:36;70220:2;;;70262:5;;;;;;;;70220:2;70310:29;70332:6;70310:29;:::i;:::-;70303:4;70298:3;70294:14;70290:50;70286:2;70279:62;70357:3;70350:10;;69576:790;;;;;;;;:::o;70372:122::-;70445:24;70463:5;70445:24;:::i;:::-;70438:5;70435:35;70425:2;;70484:1;70481;70474:12;70425:2;70415:79;:::o;70500:116::-;70570:21;70585:5;70570:21;:::i;:::-;70563:5;70560:32;70550:2;;70606:1;70603;70596:12;70550:2;70540:76;:::o;70622:122::-;70695:24;70713:5;70695:24;:::i;:::-;70688:5;70685:35;70675:2;;70734:1;70731;70724:12;70675:2;70665:79;:::o;70750:120::-;70822:23;70839:5;70822:23;:::i;:::-;70815:5;70812:34;70802:2;;70860:1;70857;70850:12;70802:2;70792:78;:::o;70876:122::-;70949:24;70967:5;70949:24;:::i;:::-;70942:5;70939:35;70929:2;;70988:1;70985;70978:12;70929:2;70919:79;:::o;71004:118::-;71075:22;71091:5;71075:22;:::i;:::-;71068:5;71065:33;71055:2;;71112:1;71109;71102:12;71055:2;71045:77;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "REGISTERED_CONSUMER()": "78e5c592", + "REGISTERED_DEALER()": "18a50d7e", + "REGISTERED_EMISSIONS_AUDITOR()": "76ce4755", + "REGISTERED_OFFSET_DEALER()": "1ef68ef7", + "REGISTERED_REC_DEALER()": "fcba7948", + "admin()": "f851a440", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "getAvailableAndRetired(address,uint256)": "7f157c9b", + "getIssuer(uint256)": "92089c46", + "getNumOfUniqueTokens()": "5ddb368f", + "getRoleAdmin(bytes32)": "248a9ca3", + "getRoleMember(bytes32,uint256)": "9010d07c", + "getRoleMemberCount(bytes32)": "ca15c873", + "getRoles(address)": "ce6ccfaf", + "getTokenDetails(uint256)": "c1e03728", + "getTokenRetiredAmount(address,uint256)": "a0d975a7", + "getTokenType(uint256)": "76aed2e1", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "initialize(address)": "c4d66de8", + "isApprovedForAll(address,address)": "e985e9c5", + "isConsumerRegistered(address)": "33781a0e", + "isDealerRegistered(address)": "69f7ef44", + "issue(address,uint8,uint256,uint256,uint256,uint256,string,string,string)": "fd0c4a9a", + "issueOnBehalf(address,address,uint8,uint256,uint256,uint256,uint256,string,string,string)": "f000be98", + "limitedMode()": "dba851b0", + "mint(address,uint256,uint256)": "156e29f6", + "registerConsumer(address)": "44b22fdd", + "registerDealer(address,uint8)": "31aa4b20", + "renounceRole(bytes32,address)": "36568abe", + "retire(uint256,uint256)": "293a7f2e", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "setLimitedMode(bool)": "ddc3e6eb", + "setTimelock(address)": "bdacb303", + "supportsInterface(bytes4)": "01ffc9a7", + "transfer(address,uint256,uint256)": "095bcdb6", + "unregisterConsumer(address)": "53dbe982", + "unregisterDealer(address,uint8)": "e2e564f2", + "uri(uint256)": "0e89341c" + } + } + } + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol": { + "NetEmissionsTokenNetworkV2": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredDealer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "availableBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "retiredBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "TokenRetired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredDealer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_CONSUMER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_EMISSIONS_AUDITOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_OFFSET_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_REC_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getAvailableAndRetired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getIssuer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNumOfUniqueTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getRoles", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenDetails", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "internalType": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenRetiredAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenType", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isConsumerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDealerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issueOnBehalf", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "limitedMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "registerConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "registerDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_limitedMode", + "type": "bool" + } + ], + "name": "setLimitedMode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "name": "setTimelock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "unregisterConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "unregisterDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50617a2c80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212208d412e79c4fc4b4c735ea4b2877a761c47805708ea7a440e845504b2d67edc4164736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7A2C DUP1 PUSH3 0x21 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 0x273 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F157C9B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xCE6CCFAF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xF000BE98 EQ PUSH2 0x823 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x83F JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x85B JUMPI DUP1 PUSH4 0xFCBA7948 EQ PUSH2 0x879 JUMPI DUP1 PUSH4 0xFD0C4A9A EQ PUSH2 0x897 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xCE6CCFAF EQ PUSH2 0x74D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xDBA851B0 EQ PUSH2 0x79D JUMPI DUP1 PUSH4 0xDDC3E6EB EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xE2E564F2 EQ PUSH2 0x7D7 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x699 JUMPI DUP1 PUSH4 0xBDACB303 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xC1E03728 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x71D JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x7F157C9B EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x92089C46 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0xA0D975A7 EQ PUSH2 0x64B JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x53DBE982 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x53DBE982 EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0x5DDB368F EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x69F7EF44 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x76AED2E1 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x76CE4755 EQ PUSH2 0x54E JUMPI DUP1 PUSH4 0x78E5C592 EQ PUSH2 0x56C JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x33781A0E EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x44B22FDD EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x484 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x18A50D7E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x18A50D7E EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x1EF68EF7 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x293A7F2E EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3E4 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x324 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x5772 JUMP JUMPDEST PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0xC9B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x373 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x391 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x5816 JUMP JUMPDEST PUSH2 0xE07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x51BA JUMP JUMPDEST PUSH2 0x10C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1486 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x14FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x436 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x431 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x16D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x482 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47D SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1757 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x563C JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x6E51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1A02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D8 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x508 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x538 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x545 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x556 PUSH2 0x1DD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x574 PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1E1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B2 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5D0 SWAP2 SWAP1 PUSH2 0x5736 JUMP JUMPDEST PUSH2 0x1EC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x605 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x600 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x635 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x630 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1F2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1F6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x672 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x683 PUSH2 0x2016 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6AE SWAP2 SWAP1 PUSH2 0x542B JUMP JUMPDEST PUSH2 0x201D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x219E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E6 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F8 SWAP2 SWAP1 PUSH2 0x74D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x71B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x253D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x737 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x732 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x744 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x767 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x778 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x79B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x796 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x28EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7A5 PUSH2 0x2963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D0 SWAP2 SWAP1 PUSH2 0x56A8 JUMP JUMPDEST PUSH2 0x2976 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x29DF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81A SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x83D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x838 SWAP2 SWAP1 PUSH2 0x5308 JUMP JUMPDEST PUSH2 0x2C28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x859 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x854 SWAP2 SWAP1 PUSH2 0x5279 JUMP JUMPDEST PUSH2 0x2CEA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x863 PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x881 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x552E JUMP JUMPDEST PUSH2 0x3077 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91B SWAP1 PUSH2 0x7015 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA11 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA3F PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA6D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA9B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xAA6 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xAAE JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xAB6 JUMPI POP DUP1 JUMPDEST PUSH2 0xAF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAEC SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAFE DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB34 SWAP1 PUSH2 0x72B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x7255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE CALLER DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2CEA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xC8F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC64 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8F 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 0xC72 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA8 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCDE SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCF0 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xD2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD26 SWAP1 PUSH2 0x7095 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD76 SWAP1 PUSH2 0x7275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP2 JUMP JUMPDEST PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x97 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE33 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE61 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE8F PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEBD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xEC8 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xED0 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xED8 JUMPI POP DUP1 JUMPDEST PUSH2 0xF17 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0E SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF56 SWAP1 PUSH2 0x7055 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF69 CALLER DUP8 PUSH2 0x8B3 JUMP JUMPDEST DUP6 GT ISZERO PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA2 SWAP1 PUSH2 0x7195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFB6 CALLER DUP8 DUP8 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x1019 DUP6 PUSH1 0xCD PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8F1B5EBB586D3D169E4ED07DB9CD10CE0DD30C7B656171310EAE7517C0B53CF9 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x7415 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1179 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1170 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1181 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x11C7 JUMPI POP PUSH2 0x11C6 DUP6 PUSH2 0x11C1 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x1206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FD SWAP1 PUSH2 0x71F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1220 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x13F1 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x123A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1252 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x12D9 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1390 DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1468 SWAP3 SWAP2 SWAP1 PUSH2 0x6E73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x147E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x380B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14AD PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x14A8 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x14EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14E3 SWAP1 PUSH2 0x6FD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14F6 DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1507 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x153D SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x154F DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x158E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1585 SWAP1 PUSH2 0x7295 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x15C9 JUMPI PUSH2 0x15C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1604 JUMPI PUSH2 0x15FF PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x162F JUMP JUMPDEST PUSH2 0x162E PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x1486 JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x165A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x1486 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA8377DEEE15954185683D55EFFD369508B4935978C8CB2BAB790BF04C5701814 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP4 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1740 SWAP1 PUSH2 0x7495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1753 DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1783 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17DF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x17EA JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x17F2 JUMPI POP DUP1 JUMPDEST PUSH2 0x1831 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1893 JUMPI PUSH2 0x1853 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1889 SWAP1 PUSH2 0x72D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x18BD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x1486 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69A0ADEE259D26FE61F4776F7BEA7F3A9737C7321256821B985F988545EFD319 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x194C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1943 SWAP1 PUSH2 0x73D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1995 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x19F7 JUMPI PUSH2 0x19D4 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19B3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19C7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8B3 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19E0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x199B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2E PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A5C PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A8A PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1A95 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1A9D JUMPI POP DUP1 JUMPDEST PUSH2 0x1ADC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AD3 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B3E JUMPI PUSH2 0x1AFE PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1B3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B34 SWAP1 PUSH2 0x70F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1B68 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x28EF JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3A38088DA75EE2D80F6C753F55F8FD17602AE17D8BD0EF44D5E1F28AB5AF11F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BBD PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP5 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C1D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP6 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP7 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1C56 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1C5E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1C77 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C87 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1CC6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBD SWAP1 PUSH2 0x7115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x52656E657761626C6520456E6572677920436572746966696361746500000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436172626F6E20456D697373696F6E73204F6666736574000000000000000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4175646974656420456D697373696F6E73000000000000000000000000000000 DUP2 MSTORE POP SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP2 JUMP JUMPDEST PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1E29 DUP6 DUP6 PUSH2 0x8B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA0D975A7 DUP8 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E68 SWAP3 SWAP2 SWAP1 PUSH2 0x6E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EB8 SWAP2 SWAP1 PUSH2 0x57ED JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF3 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B41 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F25 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F78 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1FB7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FAE SWAP1 PUSH2 0x7335 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x203C PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2093 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208A SWAP1 PUSH2 0x73B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0x20A0 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x214D PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2192 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x21AB PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21E1 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x2236 PUSH2 0x4DD9 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23E9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x23BE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23E9 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 0x23CC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x248B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2460 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248B 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 0x246E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x252D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2502 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x252D 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 0x2510 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x255C JUMPI POP PUSH2 0x255B PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2572 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25A8 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x2601 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x2619 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3B9C JUMP JUMPDEST PUSH2 0x2663 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 PUSH2 0x3C9E JUMP JUMPDEST PUSH2 0x2670 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x269A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26EE PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x2718 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x3D02 JUMP JUMPDEST DUP2 PUSH1 0xC9 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x27D7 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27FB PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3D10 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2818 PUSH1 0x0 DUP1 SHL DUP9 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2846 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP10 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2874 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28A2 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP12 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28D0 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP13 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP5 DUP5 SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP POP POP POP POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x2916 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2911 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2955 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x294C SWAP1 PUSH2 0x7175 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x295F DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x2983 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x29EC PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2A2B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A22 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A34 DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6A SWAP1 PUSH2 0x70B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AAE JUMPI PUSH2 0x2AA9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B15 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AE9 JUMPI PUSH2 0x2AE4 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B14 JUMP JUMPDEST PUSH2 0x2B13 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x2B1E DUP3 PUSH2 0x1BC2 JUMP JUMPDEST PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x98552DED770F1D05A505572F3387C108DBC6B566EA3D49F83CFF3D1F1C72A042 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2C8D JUMPI POP PUSH2 0x2C8C PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x2CCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CC3 SWAP1 PUSH2 0x6F75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CDE DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D51 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D62 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2DA8 JUMPI POP PUSH2 0x2DA7 DUP6 PUSH2 0x2DA2 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DDE SWAP1 PUSH2 0x70D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2DF1 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E11 DUP2 DUP8 DUP8 PUSH2 0x2E02 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x2E0B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x2E8E DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2F45 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x300F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3025 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A3 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30D1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30FF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x310A JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x3112 JUMPI POP DUP1 JUMPDEST PUSH2 0x3151 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3148 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3163 DUP13 CALLER DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x317E PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST LT PUSH2 0x318C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31FD SWAP1 PUSH2 0x7435 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3231 DUP2 PUSH1 0x0 DUP8 PUSH2 0x3222 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x322B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x3294 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x335F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3376 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x33ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33E4 SWAP1 PUSH2 0x7235 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33F7 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3427 DUP2 DUP6 PUSH1 0x0 PUSH2 0x3409 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x3412 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x34A4 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79A9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x356F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x35C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35BF SWAP1 PUSH2 0x7075 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x35E8 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x476D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x37AD JUMPI PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3606 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x366E JUMPI POP PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ PUSH2 0x3733 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x36EF JUMPI POP PUSH2 0x36EE PUSH1 0x0 DUP1 SHL DUP10 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x372E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3725 SWAP1 PUSH2 0x74B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x379D JUMP JUMPDEST PUSH2 0x375D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP10 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x379C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3793 SWAP1 PUSH2 0x7355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x35EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x37FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37F5 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x382A DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x39D3 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3870 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x38BB JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38B8 SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x394A JUMPI PUSH2 0x38C7 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x38D2 JUMPI POP PUSH2 0x390F JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3906 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3941 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x39D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39C8 SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3A03 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x4788 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3A6B JUMPI PUSH2 0x3A10 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x3A87 JUMPI POP PUSH1 0x3 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3A9A JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AC7 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x47B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3B2F JUMPI PUSH2 0x3AD4 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B50 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B83 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4855 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B96 ADDRESS PUSH2 0x4775 JUMP JUMPDEST ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x3BBB JUMPI POP PUSH2 0x3BBA PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x3BD1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x3C10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C07 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x3C60 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x3C68 PUSH2 0x4878 JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x4960 JUMP JUMPDEST PUSH2 0x3C79 DUP3 PUSH2 0x4A58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C9A JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP4 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x3D0C DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1E DUP3 PUSH1 0x0 ADD PUSH2 0x4B6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D2E DUP9 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x3D6D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D64 SWAP1 PUSH2 0x7475 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3F93 JUMPI PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ DUP1 PUSH2 0x3D97 JUMPI POP PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x3F17 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E23 SWAP1 PUSH2 0x7315 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3E39 PUSH1 0x0 DUP1 SHL DUP12 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3E78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E6F SWAP1 PUSH2 0x7395 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3EA2 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST DUP1 PUSH2 0x3ED3 JUMPI POP PUSH2 0x3ED2 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x3F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F09 SWAP1 PUSH2 0x71B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F8E JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x3F8D JUMPI PUSH2 0x3F4D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F83 SWAP1 PUSH2 0x7375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST PUSH2 0x4100 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x400D JUMPI PUSH2 0x3FC9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4008 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FFF SWAP1 PUSH2 0x73F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FF JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x4087 JUMPI PUSH2 0x4043 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4082 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4079 SWAP1 PUSH2 0x7155 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x40FD JUMPI PUSH2 0x40BD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x40FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40F3 SWAP1 PUSH2 0x72F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH2 0x410A PUSH1 0xCB PUSH2 0x4B7B JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 PUSH2 0x411A PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH2 0x4134 PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP5 DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP TIMESTAMP DUP2 PUSH1 0x5 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x7 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x421B SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x8 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4234 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP2 DUP2 PUSH1 0x9 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x424D SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP PUSH2 0x4272 DUP12 PUSH2 0x425C PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST PUSH1 0x3 DUP10 PUSH1 0xFF AND EQ ISZERO PUSH2 0x43B9 JUMPI PUSH2 0x42B1 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x433C DUP9 PUSH1 0xCD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x99CC3EEB446560C9A2D2483BC5160735EC0FB1851AEA3BDE32E7A56C30C11DA6 DUP11 PUSH1 0xCD PUSH1 0x0 DUP7 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 PUSH1 0x0 ADD SLOAD DUP7 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP8 PUSH1 0x3 ADD SLOAD DUP9 PUSH1 0x4 ADD SLOAD DUP10 PUSH1 0x6 ADD SLOAD DUP11 PUSH1 0x5 ADD SLOAD DUP12 PUSH1 0x7 ADD DUP13 PUSH1 0x8 ADD DUP14 PUSH1 0x9 ADD PUSH1 0x40 MLOAD PUSH2 0x4518 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x753B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x4548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4577 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x4588 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45BC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x4765 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4602 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6DCE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x464D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x464A SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x46DC JUMPI PUSH2 0x4659 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x4664 JUMPI POP PUSH2 0x46A1 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4698 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46D3 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4763 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x475A SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47B0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4B91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47E0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4C01 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x4833 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x482A SWAP1 PUSH2 0x6F95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4842 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4897 JUMPI POP PUSH2 0x4896 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x48AD JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x48EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48E3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x493C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 ISZERO PUSH2 0x495D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x497F JUMPI POP PUSH2 0x497E PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4995 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x49D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49CB SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4A24 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4A34 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A55 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4A77 JUMPI POP PUSH2 0x4A76 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4A8D JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x4ACC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4AC3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4B1C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4B25 DUP3 PUSH2 0x4DBF JUMP JUMPDEST PUSH2 0x4B35 PUSH4 0xD9B67A26 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST PUSH2 0x4B45 PUSH4 0xE89341C PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B66 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9D DUP4 DUP4 PUSH2 0x4855 JUMP JUMPDEST PUSH2 0x4BF6 JUMPI DUP3 PUSH1 0x0 ADD DUP3 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 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x4BFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x4CDD JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4C4C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4C69 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x4CA1 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x4CE3 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x4D52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D49 SWAP1 PUSH2 0x7035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x67 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4DD5 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x4EA3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4ED1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4ED1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4ED0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4EB5 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4EDE SWAP2 SWAP1 PUSH2 0x4EE2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4EFB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4EE3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4F0E DUP2 PUSH2 0x791E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4F38 PUSH2 0x4F33 DUP3 PUSH2 0x762C JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4F5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F8D JUMPI DUP2 PUSH2 0x4F73 DUP9 DUP3 PUSH2 0x4EFF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F60 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4FBB PUSH2 0x4FB6 DUP3 PUSH2 0x7658 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4FE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5010 JUMPI DUP2 PUSH2 0x4FF6 DUP9 DUP3 PUSH2 0x5116 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4FE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5029 DUP2 PUSH2 0x7935 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x503E DUP2 PUSH2 0x794C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5053 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5068 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x507F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5092 PUSH2 0x508D DUP3 PUSH2 0x7684 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x50AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50B9 DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x50E6 PUSH2 0x50E1 DUP3 PUSH2 0x76B4 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x5102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x510D DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5125 DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x513A DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x514F DUP2 PUSH2 0x7991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5175 DUP5 DUP3 DUP6 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x519F DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x51B0 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x51D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51E0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x51F1 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x520E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x521A DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5243 DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x526C DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x5291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x529F DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x52B0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x52C1 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x52D2 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52FB DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5336 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x5347 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x5358 DUP14 DUP3 DUP15 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x5369 DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x537A DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x538B DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x539C DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53C5 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53EF DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5419 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x543E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x544C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x545D DUP6 DUP3 DUP7 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x547A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5488 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5499 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x54B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x54C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x54D7 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x54E8 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5513 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5524 DUP6 DUP3 DUP7 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x554D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x555B DUP13 DUP3 DUP14 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x556C DUP13 DUP3 DUP14 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x557D DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x558E DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x559F DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x55B0 DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55D9 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5602 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5620 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x562C DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x564F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5675 DUP6 DUP3 DUP7 ADD PUSH2 0x4F14 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x569E DUP6 DUP3 DUP7 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56C8 DUP5 DUP3 DUP6 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56F1 DUP5 DUP3 DUP6 ADD PUSH2 0x502F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x570D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x571B DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x572C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5757 DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5768 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5792 DUP5 DUP3 DUP6 ADD PUSH2 0x5044 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57BB DUP5 DUP3 DUP6 ADD PUSH2 0x5059 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57E4 DUP5 DUP3 DUP6 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x580D DUP5 DUP3 DUP6 ADD PUSH2 0x512B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5829 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5837 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5848 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585E DUP4 DUP4 PUSH2 0x6D0F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5873 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5882 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5893 DUP3 PUSH2 0x7709 JUMP JUMPDEST PUSH2 0x589D DUP2 DUP6 PUSH2 0x7737 JUMP JUMPDEST SWAP4 POP PUSH2 0x58A8 DUP4 PUSH2 0x76E4 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x58D9 JUMPI DUP2 MLOAD PUSH2 0x58C0 DUP9 DUP3 PUSH2 0x5852 JUMP JUMPDEST SWAP8 POP PUSH2 0x58CB DUP4 PUSH2 0x772A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x58AC JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x58EF DUP2 PUSH2 0x778D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x58FE DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x590F DUP3 PUSH2 0x7714 JUMP JUMPDEST PUSH2 0x5919 DUP2 DUP6 PUSH2 0x7748 JUMP JUMPDEST SWAP4 POP PUSH2 0x5929 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x5932 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5948 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x5952 DUP2 DUP6 PUSH2 0x7759 JUMP JUMPDEST SWAP4 POP PUSH2 0x5962 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x596B DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5981 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x598B DUP2 DUP6 PUSH2 0x776A JUMP JUMPDEST SWAP4 POP PUSH2 0x599B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x59A4 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x59CC JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x59F2 JUMPI PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x59DD DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x5A00 DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH2 0x5A0B DUP6 PUSH2 0x76F4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5A2D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5A0E JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A4B PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AB1 PUSH1 0x35 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A69737375654F6E426568616C663A2063616C6C206D7573742063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D652066726F6D2044414F206F722061646D696E0000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B17 PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6473000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B7D PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BE3 PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F206772616E740000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C49 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C794465616C65723A206D73672E73656E646572206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061206465616C65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CAF PUSH1 0x2B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D15 PUSH1 0x1C DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x4552433136353A20696E76616C696420696E7465726661636520696400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D55 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A20746F6B656E496420646F6573206E6F742065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7869737400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DBB PUSH1 0x1B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DFB PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A20746F6B656E496420646F6573206E6F7420657869 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7374000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E61 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E72656769737465724465616C65723A20746F6B656E547970 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65496420646F6573206E6F742065786973740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC7 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2D PUSH1 0x46 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E7265676973746572436F6E73756D6572286C696D69746564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x293A206F6E6C792061646D696E2063616E20756E726567697374657220636F6E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x73756D6572730000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FB9 PUSH1 0x2A DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E547970653A20746F6B656E496420646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F7420657869737400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x601F PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C7941646D696E3A206D73672E73656E646572206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7468652061646D696E0000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6085 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726564206F6666736574206465616C657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60EB PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F207265766F6B6500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6151 PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A206E6F7420656E6F75676820617661696C6162 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C652062616C616E636520746F20726574697265000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61B7 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A2070726F706F73657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E6F7420612072656769737465726564206465616C6572000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621D PUSH1 0x25 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6283 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62E9 PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634F PUSH1 0x23 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206275726E2066726F6D20746865207A65726F2061646472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B5 PUSH1 0x36 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A2073656E64657220616E64207265636569 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7665722063616E6E6F74206265207468652073616D6500000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641B PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A2063616E6E6F74206D696E74206E657720746F6B65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E7320696E206C696D69746564206D6F64650000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6481 PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A72656769737465724465616C65723A20746F6B656E5479706549 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420646F6573206E6F7420657869737400000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64E7 PUSH1 0x26 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A20746F6B656E496420646F6573206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2065786973740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x654D PUSH1 0x42 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265676973746572436F6E73756D6572286C696D69746564293A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206F6E6C792061646D696E2063616E20726567697374657220636F6E73756D65 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7273000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x65D9 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420656D697373696F6E732061756469746F72000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x663F PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A206D73672E73656E6465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72206E6F742074696D656C6F636B000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A5 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E52657469726564416D6F756E743A20746F6B PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x656E496420646F6573206E6F7420657869737400000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x670B PUSH1 0x58 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C7920656D697373696F6E732061756469746F72732063616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x206973737565206175646974656420656D697373696F6E730000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6797 PUSH1 0x40 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756572206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061207265676973746572656420656D697373696F6E732061756469746F72 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67FD PUSH1 0x27 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756565206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061646D696E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6863 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68C9 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x692F PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420524543206465616C657200000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6995 PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69FB PUSH1 0x21 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A61 PUSH1 0x3D DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A636F6E73756D65724F724465616C65723A206D73672E73656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6572206E6F74206120636F6E73756D6572206F722061206465616C6572000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AC7 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20746F6B656E54797065496420697320696E76 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B2D PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B93 PUSH1 0x4B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C792061646D696E20616E642044414F2063616E207472616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7366657220746F6B656E73000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x6C2B PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x6C3E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x6D2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x6C51 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x6C64 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x6C77 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x6C8A PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x6C9D PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x6CB0 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x6CCA DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x6CE6 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x6D02 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6D18 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D27 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D36 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D45 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D60 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6D7B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6D88 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6D9A DUP2 DUP7 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6DAE DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6DC2 DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6DE3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DF0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DFD PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x6E0A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6E1C DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6E3D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6E4A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E6B DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E8D DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6EA1 DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EBF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6EDA PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EE7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EF4 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F01 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F0E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6F2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F4D DUP2 DUP5 PUSH2 0x5976 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F6E DUP2 PUSH2 0x5A3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F8E DUP2 PUSH2 0x5AA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FAE DUP2 PUSH2 0x5B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FCE DUP2 PUSH2 0x5B70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FEE DUP2 PUSH2 0x5BD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x700E DUP2 PUSH2 0x5C3C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x702E DUP2 PUSH2 0x5CA2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x704E DUP2 PUSH2 0x5D08 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x706E DUP2 PUSH2 0x5D48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x708E DUP2 PUSH2 0x5DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70AE DUP2 PUSH2 0x5DEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70CE DUP2 PUSH2 0x5E54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70EE DUP2 PUSH2 0x5EBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x710E DUP2 PUSH2 0x5F20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x712E DUP2 PUSH2 0x5FAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x714E DUP2 PUSH2 0x6012 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x716E DUP2 PUSH2 0x6078 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x718E DUP2 PUSH2 0x60DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71AE DUP2 PUSH2 0x6144 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71CE DUP2 PUSH2 0x61AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71EE DUP2 PUSH2 0x6210 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x720E DUP2 PUSH2 0x6276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x722E DUP2 PUSH2 0x62DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x724E DUP2 PUSH2 0x6342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726E DUP2 PUSH2 0x63A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x728E DUP2 PUSH2 0x640E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72AE DUP2 PUSH2 0x6474 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72CE DUP2 PUSH2 0x64DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72EE DUP2 PUSH2 0x6540 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x730E DUP2 PUSH2 0x65CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x732E DUP2 PUSH2 0x6632 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734E DUP2 PUSH2 0x6698 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x736E DUP2 PUSH2 0x66FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x738E DUP2 PUSH2 0x678A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73AE DUP2 PUSH2 0x67F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73CE DUP2 PUSH2 0x6856 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73EE DUP2 PUSH2 0x68BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x740E DUP2 PUSH2 0x6922 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x742E DUP2 PUSH2 0x6988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x744E DUP2 PUSH2 0x69EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x746E DUP2 PUSH2 0x6A54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x748E DUP2 PUSH2 0x6ABA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74AE DUP2 PUSH2 0x6B20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74CE DUP2 PUSH2 0x6B86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74EF DUP2 DUP5 PUSH2 0x6C12 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x750C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7527 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7534 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x7551 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x755E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x756B PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7578 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x6D3C JUMP JUMPDEST PUSH2 0x7585 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7592 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x759F PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x75AC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x75BF DUP2 DUP7 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x75D4 DUP2 DUP6 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x75E9 DUP2 DUP5 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7622 JUMPI PUSH2 0x7621 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7647 JUMPI PUSH2 0x7646 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7673 JUMPI PUSH2 0x7672 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x769F JUMPI PUSH2 0x769E PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x76CF JUMPI PUSH2 0x76CE PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7786 DUP3 PUSH2 0x77CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7833 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7818 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x7842 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x7878 JUMPI PUSH2 0x791B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x7889 PUSH1 0x0 MLOAD PUSH2 0x785B JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x789A JUMPI POP PUSH2 0x791B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x78C6 JUMPI POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x78E5 JUMPI POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x7900 JUMPI POP POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST PUSH2 0x7909 DUP3 PUSH2 0x784A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7927 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP2 EQ PUSH2 0x7932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x793E DUP2 PUSH2 0x778D JUMP JUMPDEST DUP2 EQ PUSH2 0x7949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7955 DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP2 EQ PUSH2 0x7960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x796C DUP2 PUSH2 0x77A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x7977 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7983 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP2 EQ PUSH2 0x798E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x799A DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x79A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524331 BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 COINBASE 0x2E PUSH26 0xC4FC4B4C735EA4B2877A761C47805708EA7A440E845504B2D67E 0xDC COINBASE PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "602:21550:18:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:71129:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "107:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:19", + "type": "" + } + ], + "src": "7:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "246:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "295:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "304:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "307:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "297:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "297:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "297:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "274:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "282:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "270:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "289:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "266:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "266:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "259:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "259:35:19" + }, + "nodeType": "YulIf", + "src": "256:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "320:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "347:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "334:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "334:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "324:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "363:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "444:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "387:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "387:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "372:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "372:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "363:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "461:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "472:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "465:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "493:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "500:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "486:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "486:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "486:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "508:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "522:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "518:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "518:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "508:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "536:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "547:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "552:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "543:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "543:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "536:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "597:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "608:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "601:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "663:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "675:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "665:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "665:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "665:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "633:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "642:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "650:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "638:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "638:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "629:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "629:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "658:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "626:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "626:36:19" + }, + "nodeType": "YulIf", + "src": "623:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "762:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "780:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "766:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "803:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "829:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "841:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "808:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "808:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "796:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "796:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "796:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "859:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "870:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "875:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "866:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "866:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "859:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "893:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "904:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "909:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "900:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "900:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "893:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "710:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "713:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "707:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "707:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "721:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "723:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "732:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "735:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "728:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "728:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "723:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "692:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "694:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "703:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "698:1:19", + "type": "" + } + ] + } + ] + }, + "src": "688:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "224:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "232:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "240:5:19", + "type": "" + } + ], + "src": "169:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1030:684:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1079:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1088:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1091:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1081:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1081:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1081:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1058:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1066:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1054:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1073:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1050:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1050:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1043:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1043:35:19" + }, + "nodeType": "YulIf", + "src": "1040:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1104:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1131:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1118:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1118:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1108:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1147:89:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1228:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1171:56:19" + }, + "nodeType": "YulFunctionCall", + "src": "1171:64:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "1156:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "1156:80:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1147:5:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1245:16:19", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1256:5:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1249:3:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1277:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1284:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1270:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1270:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1270:21:19" + }, + { + "nodeType": "YulAssignment", + "src": "1292:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1306:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1314:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1302:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1302:17:19" + }, + "variableNames": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1292:6:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1320:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1331:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1336:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1327:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1320:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1381:17:19", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1392:6:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1385:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1447:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1456:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1459:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1449:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1449:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1449:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1417:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1426:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1434:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1422:17:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1413:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1413:27:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1442:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1410:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1410:36:19" + }, + "nodeType": "YulIf", + "src": "1407:2:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1532:176:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1546:21:19", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1564:3:19" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "1550:10:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1587:3:19" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "1613:10:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1625:3:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1592:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "1592:37:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1580:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "1580:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1580:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "1643:21:19", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1654:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1650:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1650:14:19" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1643:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1677:21:19", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1688:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1693:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1684:14:19" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1677:3:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1494:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1497:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1491:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "1491:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1505:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1507:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1516:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1519:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "1512:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1507:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1476:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1478:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1487:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1482:1:19", + "type": "" + } + ] + } + ] + }, + "src": "1472:236:19" + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1008:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1016:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1024:5:19", + "type": "" + } + ], + "src": "953:761:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1769:84:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1779:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1801:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1788:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1788:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1779:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1841:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1817:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "1817:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1817:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1747:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1755:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1763:5:19", + "type": "" + } + ], + "src": "1720:133:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1911:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1921:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1943:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1930:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "1930:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1921:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1986:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "1959:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "1959:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "1959:33:19" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1889:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1897:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1905:5:19", + "type": "" + } + ], + "src": "1859:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2055:86:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2065:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2087:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2074:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2074:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2065:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2129:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "2103:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "2103:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2103:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2033:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2041:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2049:5:19", + "type": "" + } + ], + "src": "2004:137:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2209:79:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2219:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2234:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2228:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "2228:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2219:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2276:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "2250:25:19" + }, + "nodeType": "YulFunctionCall", + "src": "2250:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2250:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2187:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2195:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2203:5:19", + "type": "" + } + ], + "src": "2147:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2355:403:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2404:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2413:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2416:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2406:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2406:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2406:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2383:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2391:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2379:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2379:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2398:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2375:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2375:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2368:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2368:35:19" + }, + "nodeType": "YulIf", + "src": "2365:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2429:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2456:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2443:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2443:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2433:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2472:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2537:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2496:40:19" + }, + "nodeType": "YulFunctionCall", + "src": "2496:48:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2481:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2481:64:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2472:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2561:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2568:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2554:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2554:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2554:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2584:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2599:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2607:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2595:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2595:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2588:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2621:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2636:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2643:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2632:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2632:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2625:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2686:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2695:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2698:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2688:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2688:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2688:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2667:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2672:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2663:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2663:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2681:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2660:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "2660:25:19" + }, + "nodeType": "YulIf", + "src": "2657:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2735:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2740:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2745:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "2711:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "2711:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2711:41:19" + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2333:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2341:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2349:5:19", + "type": "" + } + ], + "src": "2294:464:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2826:404:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2875:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2884:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2887:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2877:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2877:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "2877:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2854:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2862:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2850:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2850:17:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2869:3:19" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2846:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "2846:27:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2839:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "2839:35:19" + }, + "nodeType": "YulIf", + "src": "2836:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2900:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2927:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2914:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "2914:20:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2904:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2943:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3009:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2967:41:19" + }, + "nodeType": "YulFunctionCall", + "src": "2967:49:19" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "2952:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "2952:65:19" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2943:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3033:5:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3040:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3026:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3026:21:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3026:21:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3056:28:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3071:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3079:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3067:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3067:17:19" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3060:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3093:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3108:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3115:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3104:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3104:16:19" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "3097:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3158:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3167:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3170:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3160:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3160:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3160:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3139:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3144:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3135:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3135:16:19" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3153:3:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3132:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "3132:25:19" + }, + "nodeType": "YulIf", + "src": "3129:2:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3207:3:19" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3212:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3217:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "3183:23:19" + }, + "nodeType": "YulFunctionCall", + "src": "3183:41:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3183:41:19" + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2804:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2812:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2820:5:19", + "type": "" + } + ], + "src": "2764:466:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3288:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3298:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3320:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3307:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3307:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3298:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3363:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3336:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3336:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3336:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3266:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3274:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3282:5:19", + "type": "" + } + ], + "src": "3236:139:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:80:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3454:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3469:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3463:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "3463:13:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3454:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3512:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3485:26:19" + }, + "nodeType": "YulFunctionCall", + "src": "3485:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3485:33:19" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3422:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3430:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3438:5:19", + "type": "" + } + ], + "src": "3381:143:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3580:85:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3590:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3612:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3599:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "3599:20:19" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3590:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3653:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "3628:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "3628:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3628:31:19" + } + ] + }, + "name": "abi_decode_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3558:6:19", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3566:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3574:5:19", + "type": "" + } + ], + "src": "3530:135:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3737:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3783:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3792:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3795:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3785:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "3785:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "3785:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3758:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3767:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3754:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3754:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3779:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3750:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3750:32:19" + }, + "nodeType": "YulIf", + "src": "3747:2:19" + }, + { + "nodeType": "YulBlock", + "src": "3809:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3823:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3837:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3827:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3851:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3886:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3897:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3882:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "3882:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3906:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3861:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "3861:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3851:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3707:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3718:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3730:6:19", + "type": "" + } + ], + "src": "3671:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4020:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4066:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4075:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4078:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4068:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4068:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4068:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4041:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4050:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4037:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4037:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4062:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4033:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4033:32:19" + }, + "nodeType": "YulIf", + "src": "4030:2:19" + }, + { + "nodeType": "YulBlock", + "src": "4092:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4106:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4120:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4110:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4134:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4169:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4180:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4165:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4165:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4189:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4144:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4144:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4134:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4217:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4231:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4245:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4235:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4260:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4295:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4306:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4291:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4291:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4315:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4270:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4270:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4260:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3982:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3993:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4005:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4013:6:19", + "type": "" + } + ], + "src": "3937:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4539:1038:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4586:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4595:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4598:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4588:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4588:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4588:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4560:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4569:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4556:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4581:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4552:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4552:33:19" + }, + "nodeType": "YulIf", + "src": "4549:2:19" + }, + { + "nodeType": "YulBlock", + "src": "4612:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4626:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4640:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4630:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4654:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4689:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4700:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4685:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4685:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4709:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4664:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4664:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4654:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4737:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4751:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4765:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4755:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4780:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4815:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4826:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4811:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4811:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4835:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4790:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "4790:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4780:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4863:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4877:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4908:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4919:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4904:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "4904:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4891:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "4891:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4881:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4970:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4979:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4982:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4972:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "4972:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "4972:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4942:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4950:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4939:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "4939:30:19" + }, + "nodeType": "YulIf", + "src": "4936:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "4999:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5059:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5070:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5055:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5055:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5079:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5009:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "5009:78:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4999:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5107:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5121:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5152:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5163:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5148:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5135:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5135:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5125:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5214:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5223:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5226:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5216:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5216:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5216:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5186:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5194:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5183:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5183:30:19" + }, + "nodeType": "YulIf", + "src": "5180:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "5243:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5303:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5314:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5299:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5299:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5323:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5253:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "5253:78:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "5243:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5351:219:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5365:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5396:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5407:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5392:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5392:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5379:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "5379:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5369:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5459:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5468:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5471:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5461:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5461:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5461:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5431:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5428:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "5428:30:19" + }, + "nodeType": "YulIf", + "src": "5425:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "5488:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5532:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5543:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5528:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5552:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5498:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "5498:62:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "5488:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4477:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4488:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4500:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4508:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "4516:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "4524:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "4532:6:19", + "type": "" + } + ], + "src": "4346:1231:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5726:802:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5773:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5782:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5785:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5775:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "5775:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "5775:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5747:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5756:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5743:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5743:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5768:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5739:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5739:33:19" + }, + "nodeType": "YulIf", + "src": "5736:2:19" + }, + { + "nodeType": "YulBlock", + "src": "5799:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5813:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5827:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5817:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5841:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5876:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5887:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5872:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5872:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5896:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5851:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "5851:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5841:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5924:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5938:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5952:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5942:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5967:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6002:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6013:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "5998:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6022:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5977:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "5977:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5967:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6050:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6064:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6078:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6068:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6093:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6128:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6139:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6124:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6124:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6148:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6103:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6103:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6093:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6176:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6190:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6204:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6194:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6219:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6254:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6265:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6250:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6250:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6274:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6229:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6229:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "6219:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6302:219:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6316:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6347:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6358:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6343:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6343:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6330:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "6330:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6320:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6410:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6419:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6422:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6412:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6412:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6412:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6382:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6390:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6379:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "6379:30:19" + }, + "nodeType": "YulIf", + "src": "6376:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "6439:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6483:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6494:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6479:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6479:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6503:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6449:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "6449:62:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "6439:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5664:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5675:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5687:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5695:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5703:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5711:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5719:6:19", + "type": "" + } + ], + "src": "5583:945:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6781:1642:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6828:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6837:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6840:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "6830:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "6830:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6802:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6811:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6798:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6823:3:19", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6794:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6794:33:19" + }, + "nodeType": "YulIf", + "src": "6791:2:19" + }, + { + "nodeType": "YulBlock", + "src": "6854:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6868:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6882:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6872:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6896:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6931:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6942:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "6927:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6951:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6906:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "6906:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6896:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6979:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6993:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7007:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6997:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7022:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7057:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7068:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7053:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7053:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7077:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7032:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7032:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7022:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7105:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7119:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7133:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7123:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7148:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7181:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7192:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7177:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7201:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "7158:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "7158:51:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7148:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7229:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7243:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7257:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7247:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7272:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7307:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7318:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7303:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7303:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7327:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7282:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7282:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "7272:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7355:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7369:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7383:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7373:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7399:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7434:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7445:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7430:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7430:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7454:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7409:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7409:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "7399:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7482:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7496:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7510:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7500:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7526:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7561:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7572:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7557:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7557:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7581:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7536:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7536:53:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "7526:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7609:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7623:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7637:3:19", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7627:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7653:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7688:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7699:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7684:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7684:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7708:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7663:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "7663:53:19" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "7653:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7736:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7750:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7781:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7792:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7777:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7764:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7764:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7754:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7844:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7853:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7856:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7846:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "7846:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "7846:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7816:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7824:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7813:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "7813:30:19" + }, + "nodeType": "YulIf", + "src": "7810:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "7873:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7918:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7929:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7914:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "7914:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7938:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7883:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "7883:63:19" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "7873:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7966:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7980:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8011:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8022:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8007:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8007:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7994:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "7994:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7984:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8074:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8083:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8086:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8076:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8076:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8076:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8046:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8054:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8043:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8043:30:19" + }, + "nodeType": "YulIf", + "src": "8040:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8103:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8148:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8159:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8144:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8144:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8168:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8113:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "8113:63:19" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "8103:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8196:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8210:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8241:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8252:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8237:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8224:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "8224:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8214:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8304:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8313:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8316:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8306:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8306:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8306:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8276:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8284:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8273:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "8273:30:19" + }, + "nodeType": "YulIf", + "src": "8270:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "8333:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8378:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8389:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8374:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8374:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8398:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8343:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "8343:63:19" + }, + "variableNames": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "8333:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6679:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6690:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6702:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6710:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6718:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "6726:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "6734:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "6742:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "6750:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "6758:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "6766:6:19", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "6774:6:19", + "type": "" + } + ], + "src": "6534:1889:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8509:317:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8555:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8564:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8567:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8557:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8557:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8557:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8530:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8539:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8526:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8551:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8522:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8522:32:19" + }, + "nodeType": "YulIf", + "src": "8519:2:19" + }, + { + "nodeType": "YulBlock", + "src": "8581:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8595:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8609:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8599:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8623:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8658:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8669:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8654:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8654:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8678:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8633:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "8633:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8623:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "8706:113:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8720:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8734:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8724:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8749:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8781:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8792:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8777:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8801:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "8759:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "8759:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8749:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8471:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8482:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8494:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8502:6:19", + "type": "" + } + ], + "src": "8429:397:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8915:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8961:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8970:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8973:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8963:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "8963:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "8963:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8936:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8945:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8932:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8932:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8957:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8928:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "8928:32:19" + }, + "nodeType": "YulIf", + "src": "8925:2:19" + }, + { + "nodeType": "YulBlock", + "src": "8987:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9001:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9015:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9005:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9029:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9064:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9075:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9060:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9060:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9084:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9039:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9039:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9029:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9112:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9126:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9140:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9130:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9155:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9190:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9201:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9186:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9210:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9165:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9165:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9155:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8877:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8888:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8900:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8908:6:19", + "type": "" + } + ], + "src": "8832:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9341:446:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9387:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9396:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9399:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9389:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9389:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9389:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9362:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9371:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9358:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9358:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9383:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9354:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9354:32:19" + }, + "nodeType": "YulIf", + "src": "9351:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9413:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9427:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9441:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9431:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9455:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9501:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9486:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9510:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9465:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9465:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9455:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9538:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9552:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9566:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9556:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9581:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9616:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9627:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9612:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9612:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9636:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9591:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9591:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9581:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9664:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9678:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9692:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9682:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9707:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9742:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9753:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9738:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9738:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9762:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9717:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9717:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9707:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9295:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9306:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9318:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9326:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9334:6:19", + "type": "" + } + ], + "src": "9241:546:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9874:318:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9920:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9929:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9932:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9922:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "9922:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "9922:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9895:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9904:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9891:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9891:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9916:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9887:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "9887:32:19" + }, + "nodeType": "YulIf", + "src": "9884:2:19" + }, + { + "nodeType": "YulBlock", + "src": "9946:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9960:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9974:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9964:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9988:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10023:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10034:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10019:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10019:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10043:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9998:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "9998:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9988:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10071:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10085:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10089:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10114:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10147:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10158:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10143:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10143:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10167:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "10124:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "10124:51:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10114:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9836:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9847:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9859:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9867:6:19", + "type": "" + } + ], + "src": "9793:399:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10428:1515:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10475:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10484:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10487:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10477:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "10477:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "10477:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10449:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10458:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10445:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10445:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10470:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10441:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10441:33:19" + }, + "nodeType": "YulIf", + "src": "10438:2:19" + }, + { + "nodeType": "YulBlock", + "src": "10501:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10515:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10529:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10519:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10543:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10578:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10589:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10574:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10574:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10598:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10553:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10553:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10543:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10626:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10640:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10654:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10644:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10669:61:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10702:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10713:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10698:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10698:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10722:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "10679:18:19" + }, + "nodeType": "YulFunctionCall", + "src": "10679:51:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10669:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10750:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10764:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10778:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10768:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10793:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10828:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10839:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10824:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10824:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10848:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10803:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10803:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10793:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10876:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10890:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10904:2:19", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10894:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10919:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10954:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10965:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10950:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "10950:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10974:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10929:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "10929:53:19" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10919:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11002:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11016:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11030:3:19", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11020:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11046:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11081:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11092:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11077:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11101:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11056:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11056:53:19" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "11046:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11129:117:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11143:17:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11157:3:19", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11147:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11173:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11208:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11219:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11204:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11204:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11228:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11183:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "11183:53:19" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "11173:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11256:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11270:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11301:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11312:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11297:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11297:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11284:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11284:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11274:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11364:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11373:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11376:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11366:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11366:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11366:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11336:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11344:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11333:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11333:30:19" + }, + "nodeType": "YulIf", + "src": "11330:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11393:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11438:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11449:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11434:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11434:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11458:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11403:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11403:63:19" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "11393:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11486:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11500:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11531:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11542:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11527:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11514:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11514:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11504:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11594:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11603:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11606:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11596:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11596:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11596:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11566:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11574:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11563:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11563:30:19" + }, + "nodeType": "YulIf", + "src": "11560:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11623:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11668:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11679:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11664:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11664:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11688:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11633:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11633:63:19" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "11623:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11716:220:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11730:47:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11761:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11772:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11757:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11757:19:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "11744:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "11744:33:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11734:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11824:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11833:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11836:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11826:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "11826:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "11826:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11796:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11804:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11793:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "11793:30:19" + }, + "nodeType": "YulIf", + "src": "11790:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "11853:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11898:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11909:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11894:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "11894:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11918:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11863:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "11863:63:19" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "11853:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10334:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10345:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10357:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10365:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10373:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "10381:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "10389:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "10397:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "10405:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "10413:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "10421:6:19", + "type": "" + } + ], + "src": "10198:1745:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12082:556:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12128:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12137:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12140:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12130:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12130:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12130:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12103:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12112:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12099:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12099:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12124:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12095:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12095:32:19" + }, + "nodeType": "YulIf", + "src": "12092:2:19" + }, + { + "nodeType": "YulBlock", + "src": "12154:233:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12168:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12199:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12210:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12195:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12195:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12182:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "12182:31:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12172:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12260:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12269:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12272:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12262:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12262:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12262:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12232:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12240:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12229:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "12229:30:19" + }, + "nodeType": "YulIf", + "src": "12226:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "12289:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12349:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12360:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12345:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12345:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12369:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12299:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "12299:78:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12289:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12397:234:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12411:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12442:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12453:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12438:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12438:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12425:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "12425:32:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12415:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12504:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12513:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12516:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12506:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12506:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12506:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12484:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12473:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "12473:30:19" + }, + "nodeType": "YulIf", + "src": "12470:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "12533:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12593:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12604:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12589:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12589:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12613:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "12543:45:19" + }, + "nodeType": "YulFunctionCall", + "src": "12543:78:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12533:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12044:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12055:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12067:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12075:6:19", + "type": "" + } + ], + "src": "11949:689:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12707:191:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12753:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12762:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12765:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "12755:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "12755:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12728:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12737:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12724:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12724:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12749:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12720:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12720:32:19" + }, + "nodeType": "YulIf", + "src": "12717:2:19" + }, + { + "nodeType": "YulBlock", + "src": "12779:112:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12793:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12807:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12797:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12821:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12853:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12864:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12849:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12849:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12873:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "12831:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "12831:50:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12821:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12677:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12688:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12700:6:19", + "type": "" + } + ], + "src": "12644:254:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12970:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13016:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13025:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13028:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13018:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13018:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13018:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12991:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13000:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12987:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13012:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12983:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "12983:32:19" + }, + "nodeType": "YulIf", + "src": "12980:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13042:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13056:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13070:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13060:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13084:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13119:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13130:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13115:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13115:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13139:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13094:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13094:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13084:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12940:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12951:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12963:6:19", + "type": "" + } + ], + "src": "12904:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13253:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13299:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13308:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13311:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13301:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13301:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13301:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13274:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13283:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13270:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13270:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13295:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13266:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13266:32:19" + }, + "nodeType": "YulIf", + "src": "13263:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13325:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13339:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13353:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13343:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13367:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13402:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13413:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13398:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13398:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13422:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13377:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13377:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13367:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13450:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13464:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13478:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13468:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13493:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13528:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13539:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13524:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13524:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13548:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13503:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13503:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13493:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13215:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13226:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13238:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13246:6:19", + "type": "" + } + ], + "src": "13170:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13662:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13708:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13717:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13720:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13710:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "13710:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "13710:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13683:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13692:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13679:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13679:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13704:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13675:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13675:32:19" + }, + "nodeType": "YulIf", + "src": "13672:2:19" + }, + { + "nodeType": "YulBlock", + "src": "13734:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13748:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13762:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13752:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13776:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13811:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13822:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13807:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13807:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13831:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "13786:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13786:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13776:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "13859:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13873:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13887:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13877:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13902:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13937:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13948:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13933:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "13933:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13957:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "13912:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "13912:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13902:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13624:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13635:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13647:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13655:6:19", + "type": "" + } + ], + "src": "13579:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14053:193:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14099:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14108:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14111:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14101:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14101:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14101:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14074:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14083:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14070:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14070:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14095:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14066:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14066:32:19" + }, + "nodeType": "YulIf", + "src": "14063:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14125:114:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14139:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14153:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14143:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14167:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14201:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14212:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14197:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14197:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14221:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "14177:19:19" + }, + "nodeType": "YulFunctionCall", + "src": "14177:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14167:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14023:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14034:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14046:6:19", + "type": "" + } + ], + "src": "13988:258:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14328:204:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14374:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14383:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14386:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14376:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14376:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14376:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14349:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14358:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14345:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14345:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14370:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14341:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14341:32:19" + }, + "nodeType": "YulIf", + "src": "14338:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14400:125:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14414:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14428:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14418:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14442:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14487:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14498:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14483:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14483:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14507:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nodeType": "YulIdentifier", + "src": "14452:30:19" + }, + "nodeType": "YulFunctionCall", + "src": "14452:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14442:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14298:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14309:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14321:6:19", + "type": "" + } + ], + "src": "14252:280:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14604:194:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14650:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14659:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14662:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14652:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14652:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14652:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14625:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14634:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14621:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14621:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14646:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14617:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14617:32:19" + }, + "nodeType": "YulIf", + "src": "14614:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14676:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14690:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14704:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14694:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14718:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14753:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14764:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14749:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14749:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14773:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "14728:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "14728:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14718:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14574:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14585:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14597:6:19", + "type": "" + } + ], + "src": "14538:260:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14881:205:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14927:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14936:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14939:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14929:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "14929:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "14929:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14902:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14911:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14898:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14898:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14923:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14894:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "14894:32:19" + }, + "nodeType": "YulIf", + "src": "14891:2:19" + }, + { + "nodeType": "YulBlock", + "src": "14953:126:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14995:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15041:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15052:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15037:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15037:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15061:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15005:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "15005:64:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14995:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14851:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14862:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14874:6:19", + "type": "" + } + ], + "src": "14804:282:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15175:320:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15221:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15230:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15233:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15223:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15223:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15223:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15196:7:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15205:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15192:23:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15217:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "15188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15188:32:19" + }, + "nodeType": "YulIf", + "src": "15185:2:19" + }, + { + "nodeType": "YulBlock", + "src": "15247:115:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15261:15:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15275:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15265:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15289:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15324:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15335:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15320:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15320:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15344:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "15299:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15299:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15289:6:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "15372:116:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "15386:16:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15400:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "15390:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15415:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15450:9:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15461:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15446:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15446:22:19" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15470:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "15425:20:19" + }, + "nodeType": "YulFunctionCall", + "src": "15425:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15415:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15137:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "15148:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15160:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15168:6:19", + "type": "" + } + ], + "src": "15092:403:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15581:99:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15625:6:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15633:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "15591:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "15591:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15591:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "15646:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15664:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15669:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15660:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "15660:14:19" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "15646:10:19" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15554:6:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15562:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "15570:10:19", + "type": "" + } + ], + "src": "15501:179:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15741:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15758:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15781:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "15763:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "15763:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15751:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15751:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15751:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15729:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15736:3:19", + "type": "" + } + ], + "src": "15686:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15865:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15882:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15905:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "15887:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "15887:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15875:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "15875:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "15875:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15853:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15860:3:19", + "type": "" + } + ], + "src": "15800:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16078:608:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16088:68:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16150:5:19" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16102:47:19" + }, + "nodeType": "YulFunctionCall", + "src": "16102:54:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16092:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16165:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16246:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16251:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16172:73:19" + }, + "nodeType": "YulFunctionCall", + "src": "16172:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16165:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16267:71:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16332:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16282:49:19" + }, + "nodeType": "YulFunctionCall", + "src": "16282:56:19" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "16271:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16347:21:19", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "16361:7:19" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "16351:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16437:224:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16451:34:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16478:6:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16472:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "16472:13:19" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "16455:13:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16498:70:19", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "16549:13:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16564:3:19" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "16505:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "16505:63:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16498:3:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16581:70:19", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16644:6:19" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16591:52:19" + }, + "nodeType": "YulFunctionCall", + "src": "16591:60:19" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "16581:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16399:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16402:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "16396:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "16396:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "16410:18:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16412:14:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16421:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16424:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16417:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "16417:9:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16412:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "16381:14:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16383:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16392:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "16387:1:19", + "type": "" + } + ] + } + ] + }, + "src": "16377:284:19" + }, + { + "nodeType": "YulAssignment", + "src": "16670:10:19", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16677:3:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16670:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16057:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16064:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16073:3:19", + "type": "" + } + ], + "src": "15954:732:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16751:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16768:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16788:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "16773:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "16773:21:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16761:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16761:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16761:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16739:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16746:3:19", + "type": "" + } + ], + "src": "16692:109:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16872:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16889:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16912:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "16894:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "16894:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16882:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "16882:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "16882:37:19" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16860:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16867:3:19", + "type": "" + } + ], + "src": "16807:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17021:270:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17031:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17077:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17045:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "17045:38:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17035:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17092:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17157:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17162:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17099:57:19" + }, + "nodeType": "YulFunctionCall", + "src": "17099:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17092:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17204:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17211:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17200:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17200:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17218:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17223:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17178:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17178:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17178:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17239:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17250:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17277:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17255:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17255:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17246:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17246:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17239:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17002:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17009:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17017:3:19", + "type": "" + } + ], + "src": "16931:360:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17379:262:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17389:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17436:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17403:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "17403:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17393:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17451:68:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17507:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17512:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17458:48:19" + }, + "nodeType": "YulFunctionCall", + "src": "17458:61:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17451:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17554:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17561:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17550:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17550:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17568:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17573:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17528:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17528:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17528:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17589:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17600:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17627:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17605:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17605:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17596:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17596:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17589:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17360:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17367:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17375:3:19", + "type": "" + } + ], + "src": "17297:344:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17739:272:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17749:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17796:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "17763:32:19" + }, + "nodeType": "YulFunctionCall", + "src": "17763:39:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "17753:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17811:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17877:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17882:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17818:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "17818:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17811:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17924:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17931:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17920:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17920:16:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17938:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17943:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17898:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17898:52:19" + }, + "nodeType": "YulExpressionStatement", + "src": "17898:52:19" + }, + { + "nodeType": "YulAssignment", + "src": "17959:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17970:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17997:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "17975:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "17975:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17966:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "17966:39:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17959:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "17720:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17727:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17735:3:19", + "type": "" + } + ], + "src": "17647:364:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18130:848:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18140:29:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18163:5:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "18157:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "18157:12:19" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "18144:9:19", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "18218:274:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18264:42:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18286:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18297:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18282:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18282:17:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18301:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18278:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18278:28:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18268:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18385:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18390:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18326:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "18326:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18319:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18417:3:19" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18426:9:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18441:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "18437:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18437:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18422:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18422:25:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18410:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18410:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18410:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "18461:21:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18472:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18477:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18468:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18468:14:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18461:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18211:281:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18216:1:19", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18508:464:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "18553:31:19", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18571:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18582:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18567:17:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "18557:6:19", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18597:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18663:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18668:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18604:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "18604:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18597:3:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18688:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18735:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "18703:31:19" + }, + "nodeType": "YulFunctionCall", + "src": "18703:38:19" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "18692:7:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18754:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18763:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "18758:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18821:110:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18850:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18855:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18846:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18846:11:19" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18865:7:19" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "18859:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "18859:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18839:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "18839:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "18839:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "18891:26:19", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18906:7:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18915:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18902:15:19" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "18891:7:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18788:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "18791:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "18785:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "18785:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "18799:21:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18801:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18810:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18813:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18806:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18806:12:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18801:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "18781:3:19", + "statements": [] + }, + "src": "18777:154:19" + }, + { + "nodeType": "YulAssignment", + "src": "18944:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18955:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "18960:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18951:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18951:11:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18944:3:19" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "18501:471:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18506:1:19", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "18189:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18200:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18185:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "18185:17:19" + }, + "nodeType": "YulSwitch", + "src": "18178:794:19" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18111:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18118:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18126:3:19", + "type": "" + } + ], + "src": "18041:937:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19130:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19140:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19206:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19211:2:19", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19147:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19147:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19140:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19235:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19240:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19231:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19244:34:19", + "type": "", + "value": "ERC1155: transfer to non ERC1155" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19224:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19224:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19224:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19300:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19305:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19296:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19296:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19310:22:19", + "type": "", + "value": "Receiver implementer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19289:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19289:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19289:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "19343:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19354:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19359:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19350:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19350:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19343:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19118:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19126:3:19", + "type": "" + } + ], + "src": "18984:384:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19520:239:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19530:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19596:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19601:2:19", + "type": "", + "value": "53" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19537:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19537:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19530:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19625:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19630:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19621:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19621:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19634:34:19", + "type": "", + "value": "CLM8::issueOnBehalf: call must c" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19614:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19614:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19614:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19690:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19695:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19686:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19686:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "19700:23:19", + "type": "", + "value": "ome from DAO or admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19679:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "19679:45:19" + }, + "nodeType": "YulExpressionStatement", + "src": "19679:45:19" + }, + { + "nodeType": "YulAssignment", + "src": "19734:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19745:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19750:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19741:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "19741:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19734:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19508:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19516:3:19", + "type": "" + } + ], + "src": "19374:385:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19911:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19921:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19987:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19992:2:19", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19928:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "19928:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19921:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20016:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20021:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20012:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20012:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20025:34:19", + "type": "", + "value": "EnumerableSet: index out of boun" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20005:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20005:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20005:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20081:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20086:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20077:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20091:4:19", + "type": "", + "value": "ds" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20070:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20070:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20070:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "20106:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20117:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20122:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20113:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20113:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20106:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19899:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19907:3:19", + "type": "" + } + ], + "src": "19765:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20283:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20293:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20359:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20364:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20300:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "20300:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20293:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20388:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20393:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20384:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20384:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20397:34:19", + "type": "", + "value": "ERC1155: ERC1155Receiver rejecte" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20377:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20377:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20377:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20453:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20458:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20449:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20449:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20463:10:19", + "type": "", + "value": "d tokens" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20442:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20442:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20442:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "20484:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20495:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20500:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20491:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20491:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20484:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20271:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20279:3:19", + "type": "" + } + ], + "src": "20137:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20661:233:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20671:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20737:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20742:2:19", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20678:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "20678:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20671:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20766:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20771:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20762:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20775:34:19", + "type": "", + "value": "AccessControl: sender must be an" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20755:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20755:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20831:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20836:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20827:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20827:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "20841:17:19", + "type": "", + "value": " admin to grant" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20820:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "20820:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "20820:39:19" + }, + { + "nodeType": "YulAssignment", + "src": "20869:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20880:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20885:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20876:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "20876:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20869:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20649:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20657:3:19", + "type": "" + } + ], + "src": "20515:379:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21046:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21056:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21122:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21127:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21063:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21063:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21056:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21151:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21156:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21147:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21147:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21160:34:19", + "type": "", + "value": "CLM8::onlyDealer: msg.sender not" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21140:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21140:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21140:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21216:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21221:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21212:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21212:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21226:11:19", + "type": "", + "value": " a dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21205:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21205:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21205:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "21248:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21259:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21264:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21255:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21255:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21248:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21034:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21042:3:19", + "type": "" + } + ], + "src": "20900:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21425:229:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21435:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21501:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21506:2:19", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21442:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21442:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21435:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21530:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21535:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21526:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21526:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21539:34:19", + "type": "", + "value": "ERC1155: balance query for the z" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21519:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21519:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21519:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21595:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21600:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21591:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21591:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21605:13:19", + "type": "", + "value": "ero address" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21584:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21584:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21584:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "21629:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21640:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21645:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21636:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21636:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21629:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21413:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21421:3:19", + "type": "" + } + ], + "src": "21279:375:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21806:180:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21816:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21882:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21887:2:19", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21823:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "21823:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21816:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21911:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21916:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21907:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21907:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "21920:30:19", + "type": "", + "value": "ERC165: invalid interface id" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21900:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "21900:51:19" + }, + "nodeType": "YulExpressionStatement", + "src": "21900:51:19" + }, + { + "nodeType": "YulAssignment", + "src": "21961:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21972:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21977:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21968:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "21968:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21961:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21794:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21802:3:19", + "type": "" + } + ], + "src": "21660:326:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22138:222:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22148:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22214:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22219:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22155:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22155:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22148:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22243:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22248:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22239:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22239:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22252:34:19", + "type": "", + "value": "CLM8::retire: tokenId does not e" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22232:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22232:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22232:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22308:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22313:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22304:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22304:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22318:6:19", + "type": "", + "value": "xist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22297:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22297:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22297:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "22335:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22346:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22351:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22342:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22342:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22335:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22126:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22134:3:19", + "type": "" + } + ], + "src": "21992:368:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22512:179:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22522:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22588:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22593:2:19", + "type": "", + "value": "27" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22529:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22529:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22522:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22617:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22622:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22613:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22613:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22626:29:19", + "type": "", + "value": "SafeMath: addition overflow" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22606:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22606:50:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22606:50:19" + }, + { + "nodeType": "YulAssignment", + "src": "22666:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22677:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22682:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22673:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "22666:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22500:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22508:3:19", + "type": "" + } + ], + "src": "22366:325:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22843:220:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22853:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22919:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22924:2:19", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "22860:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "22860:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22853:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22948:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22953:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22944:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "22944:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "22957:34:19", + "type": "", + "value": "CLM8::mint: tokenId does not exi" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22937:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "22937:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "22937:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23013:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23018:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23009:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23009:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23023:4:19", + "type": "", + "value": "st" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23002:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23002:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23002:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "23038:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23049:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23054:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23045:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23045:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23038:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22831:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22839:3:19", + "type": "" + } + ], + "src": "22697:366:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23215:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23225:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23291:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23296:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23232:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23232:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23225:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23320:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23325:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23316:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23316:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23329:34:19", + "type": "", + "value": "CLM8::unregisterDealer: tokenTyp" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23309:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23309:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23309:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23385:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23390:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23381:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23395:20:19", + "type": "", + "value": "eId does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23374:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23374:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23374:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "23426:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23437:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23442:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23433:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23433:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23426:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23203:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23211:3:19", + "type": "" + } + ], + "src": "23069:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23603:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23613:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23679:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23684:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23620:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23620:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23613:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23708:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23713:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23704:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23704:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23717:34:19", + "type": "", + "value": "ERC1155: caller is not owner nor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23697:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23697:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23697:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23773:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23778:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23769:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23769:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "23783:11:19", + "type": "", + "value": " approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23762:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "23762:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "23762:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "23805:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23816:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23821:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "23812:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23805:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23591:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23599:3:19", + "type": "" + } + ], + "src": "23457:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23982:290:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23992:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24063:2:19", + "type": "", + "value": "70" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23999:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "23999:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23992:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24087:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24092:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24083:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24096:34:19", + "type": "", + "value": "CLM8::unregisterConsumer(limited" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24076:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24076:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24076:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24152:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24157:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24148:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24148:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24162:34:19", + "type": "", + "value": "): only admin can unregister con" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24141:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24141:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24141:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24218:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24223:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24214:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24214:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24228:8:19", + "type": "", + "value": "sumers" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24207:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24207:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24207:30:19" + }, + { + "nodeType": "YulAssignment", + "src": "24247:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24258:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24263:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24254:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24254:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24247:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23970:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23978:3:19", + "type": "" + } + ], + "src": "23836:436:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24424:228:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24434:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24500:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24505:2:19", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24441:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24441:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24434:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24529:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24534:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24525:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24525:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24538:34:19", + "type": "", + "value": "CLM8::getTokenType: tokenId does" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24518:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24518:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24518:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24594:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24599:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24590:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24590:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24604:12:19", + "type": "", + "value": " not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24583:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24583:34:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24583:34:19" + }, + { + "nodeType": "YulAssignment", + "src": "24627:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24638:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24643:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24634:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24634:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24627:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24412:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24420:3:19", + "type": "" + } + ], + "src": "24278:374:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24804:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24814:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24880:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24885:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24821:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "24821:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24814:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24909:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24914:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24905:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24905:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24918:34:19", + "type": "", + "value": "CLM8::onlyAdmin: msg.sender not " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24898:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24898:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24898:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24974:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24979:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24970:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "24970:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "24984:11:19", + "type": "", + "value": "the admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24963:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "24963:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "24963:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "25006:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25017:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25022:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25013:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25013:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25006:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24792:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24800:3:19", + "type": "" + } + ], + "src": "24658:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25183:237:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25193:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25259:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25264:2:19", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25200:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25200:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25193:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25288:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25293:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25284:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25284:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25297:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25277:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25277:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25277:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25353:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25358:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25349:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25349:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25363:21:19", + "type": "", + "value": "tered offset dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25342:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25342:43:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25342:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "25395:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25406:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25411:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25402:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25395:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25171:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25179:3:19", + "type": "" + } + ], + "src": "25037:383:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25572:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25582:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25648:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25653:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25589:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25589:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25582:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25677:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25682:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25673:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25673:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25686:34:19", + "type": "", + "value": "AccessControl: sender must be an" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25666:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25666:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25666:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25742:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25747:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25738:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25738:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25752:18:19", + "type": "", + "value": " admin to revoke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25731:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "25731:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "25731:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "25781:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25792:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25797:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25788:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "25788:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25781:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25560:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25568:3:19", + "type": "" + } + ], + "src": "25426:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25958:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25968:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26034:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26039:2:19", + "type": "", + "value": "52" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25975:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "25975:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25968:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26063:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26068:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26059:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26059:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26072:34:19", + "type": "", + "value": "CLM8::retire: not enough availab" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26052:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26052:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26052:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26128:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26133:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26124:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26124:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26138:22:19", + "type": "", + "value": "le balance to retire" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26117:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26117:44:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26117:44:19" + }, + { + "nodeType": "YulAssignment", + "src": "26171:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26182:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26187:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26178:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26178:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26171:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25946:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25954:3:19", + "type": "" + } + ], + "src": "25812:384:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26348:241:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26358:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26424:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26429:2:19", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26365:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26365:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26358:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26453:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26458:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26449:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26449:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26462:34:19", + "type": "", + "value": "CLM8::_issue(limited): proposer " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26442:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26442:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26442:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26518:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26523:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26514:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26514:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26528:25:19", + "type": "", + "value": "not a registered dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26507:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26507:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26507:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "26564:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26575:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26580:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26571:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26571:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26564:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26336:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26344:3:19", + "type": "" + } + ], + "src": "26202:387:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26741:223:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26751:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26817:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26822:2:19", + "type": "", + "value": "37" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26758:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "26758:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26751:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26846:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26851:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26842:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26842:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26855:34:19", + "type": "", + "value": "ERC1155: transfer to the zero ad" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26835:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26835:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26835:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26911:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26916:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26907:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26907:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "26921:7:19", + "type": "", + "value": "dress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26900:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "26900:29:19" + }, + "nodeType": "YulExpressionStatement", + "src": "26900:29:19" + }, + { + "nodeType": "YulAssignment", + "src": "26939:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26950:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26955:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26946:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "26946:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26939:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26729:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26737:3:19", + "type": "" + } + ], + "src": "26595:369:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27116:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27126:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27192:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27197:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27133:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27133:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27126:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27221:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27226:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27217:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27217:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27230:34:19", + "type": "", + "value": "ERC1155: transfer caller is not " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27210:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27210:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27210:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27286:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27291:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27282:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27282:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27296:20:19", + "type": "", + "value": "owner nor approved" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27275:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27275:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27275:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "27327:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27338:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27343:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27334:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27334:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27327:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27104:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27112:3:19", + "type": "" + } + ], + "src": "26970:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27504:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27514:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27580:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27585:2:19", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27521:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27521:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27514:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27609:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27614:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27605:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27605:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27618:34:19", + "type": "", + "value": "Initializable: contract is alrea" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27598:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27598:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27598:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27674:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27679:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27670:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27670:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "27684:16:19", + "type": "", + "value": "dy initialized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27663:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27663:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27663:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "27711:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27722:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27727:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27718:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27718:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "27711:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27492:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27500:3:19", + "type": "" + } + ], + "src": "27358:378:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27888:221:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27898:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27964:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27969:2:19", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27905:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "27905:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27898:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "27993:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27998:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27989:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "27989:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28002:34:19", + "type": "", + "value": "ERC1155: burn from the zero addr" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27982:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "27982:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "27982:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28058:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28063:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28054:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28054:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28068:5:19", + "type": "", + "value": "ess" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28047:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28047:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28047:27:19" + }, + { + "nodeType": "YulAssignment", + "src": "28084:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28095:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28100:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28091:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28091:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28084:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27876:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27884:3:19", + "type": "" + } + ], + "src": "27742:367:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28261:240:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28271:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28337:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28342:2:19", + "type": "", + "value": "54" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28278:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28278:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28271:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28366:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28371:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28362:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28362:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28375:34:19", + "type": "", + "value": "CLM8::transfer: sender and recei" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28355:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28355:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28355:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28431:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28436:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28427:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28427:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28441:24:19", + "type": "", + "value": "ver cannot be the same" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28420:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28420:46:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28420:46:19" + }, + { + "nodeType": "YulAssignment", + "src": "28476:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28487:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28492:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28483:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28483:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28476:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28249:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28257:3:19", + "type": "" + } + ], + "src": "28115:386:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28653:236:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28663:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28729:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28734:2:19", + "type": "", + "value": "50" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28670:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "28670:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28663:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28758:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28763:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28754:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28754:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28767:34:19", + "type": "", + "value": "CLM8::mint: cannot mint new toke" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28747:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28747:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28747:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28823:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28828:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28819:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28819:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "28833:20:19", + "type": "", + "value": "ns in limited mode" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28812:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "28812:42:19" + }, + "nodeType": "YulExpressionStatement", + "src": "28812:42:19" + }, + { + "nodeType": "YulAssignment", + "src": "28864:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28875:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28880:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28871:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "28871:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28864:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "28641:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "28649:3:19", + "type": "" + } + ], + "src": "28507:382:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29041:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29051:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29117:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29122:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29058:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29058:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29051:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29146:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29151:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29142:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29142:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29155:34:19", + "type": "", + "value": "CLM8::registerDealer: tokenTypeI" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29135:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29135:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29135:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29211:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29216:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29207:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29207:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29221:18:19", + "type": "", + "value": "d does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29200:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29200:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29200:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "29250:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29261:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29266:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29257:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29257:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29250:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29029:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29037:3:19", + "type": "" + } + ], + "src": "28895:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29427:224:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29437:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29503:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29508:2:19", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29444:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29444:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29437:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29532:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29537:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29528:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29528:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29541:34:19", + "type": "", + "value": "CLM8::transfer: tokenId does not" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29521:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29521:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29521:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29597:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29602:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29593:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29593:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29607:8:19", + "type": "", + "value": " exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29586:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29586:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29586:30:19" + }, + { + "nodeType": "YulAssignment", + "src": "29626:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29637:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29642:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29633:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29633:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29626:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29415:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29423:3:19", + "type": "" + } + ], + "src": "29281:370:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29803:286:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29813:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29879:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29884:2:19", + "type": "", + "value": "66" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29820:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "29820:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29813:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29908:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29913:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29904:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29904:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29917:34:19", + "type": "", + "value": "CLM8::registerConsumer(limited):" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29897:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29897:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29897:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29973:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29978:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29969:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "29969:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29983:34:19", + "type": "", + "value": " only admin can register consume" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29962:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "29962:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "29962:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30039:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30044:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30035:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30035:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30049:4:19", + "type": "", + "value": "rs" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30028:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30028:26:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30028:26:19" + }, + { + "nodeType": "YulAssignment", + "src": "30064:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30075:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30080:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30071:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30071:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30064:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29791:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29799:3:19", + "type": "" + } + ], + "src": "29657:432:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30241:241:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30251:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30317:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30322:2:19", + "type": "", + "value": "55" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30258:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30258:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30251:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30346:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30351:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30342:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30342:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30355:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30335:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30335:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30335:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30411:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30416:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30407:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30407:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30421:25:19", + "type": "", + "value": "tered emissions auditor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30400:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30400:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30400:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "30457:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30468:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30473:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30464:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30464:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30457:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30229:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30237:3:19", + "type": "" + } + ], + "src": "30095:387:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30634:232:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30644:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30710:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30715:2:19", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30651:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "30651:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30644:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30739:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30744:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30735:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30735:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30748:34:19", + "type": "", + "value": "CLM8::_issue(limited): msg.sende" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30728:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30728:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30728:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30804:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30809:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30800:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30800:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30814:16:19", + "type": "", + "value": "r not timelock" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30793:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "30793:38:19" + }, + "nodeType": "YulExpressionStatement", + "src": "30793:38:19" + }, + { + "nodeType": "YulAssignment", + "src": "30841:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30852:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30857:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30848:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "30848:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30841:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30622:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30630:3:19", + "type": "" + } + ], + "src": "30488:378:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31018:237:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31028:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31094:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31099:2:19", + "type": "", + "value": "51" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31035:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31035:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31028:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31123:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31128:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31119:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31119:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31132:34:19", + "type": "", + "value": "CLM8::getTokenRetiredAmount: tok" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31112:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31112:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31112:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31188:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31193:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31184:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31184:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31198:21:19", + "type": "", + "value": "enId does not exist" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31177:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31177:43:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31177:43:19" + }, + { + "nodeType": "YulAssignment", + "src": "31230:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31241:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31246:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31237:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31230:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31006:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31014:3:19", + "type": "" + } + ], + "src": "30872:383:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31407:308:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31417:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31483:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31488:2:19", + "type": "", + "value": "88" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31424:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31424:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31417:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31512:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31517:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31508:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31508:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31521:34:19", + "type": "", + "value": "CLM8::_beforeTokenTransfer(limit" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31501:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31501:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31501:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31577:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31582:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31573:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31573:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31587:34:19", + "type": "", + "value": "ed): only emissions auditors can" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31566:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31566:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31566:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31643:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31648:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31639:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31639:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31653:26:19", + "type": "", + "value": " issue audited emissions" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31632:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31632:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31632:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "31690:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31701:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31706:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31697:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31697:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31690:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31395:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31403:3:19", + "type": "" + } + ], + "src": "31261:454:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31867:250:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31877:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31943:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31948:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31884:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "31884:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31877:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31972:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31977:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31968:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "31968:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "31981:34:19", + "type": "", + "value": "CLM8::_issue(limited): issuer no" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31961:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "31961:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "31961:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32037:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32042:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32033:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32033:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32047:34:19", + "type": "", + "value": "t a registered emissions auditor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32026:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32026:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32026:56:19" + }, + { + "nodeType": "YulAssignment", + "src": "32092:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32103:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32108:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32099:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32099:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32092:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31855:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31863:3:19", + "type": "" + } + ], + "src": "31721:396:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32269:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32279:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32345:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32350:2:19", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32286:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "32286:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32279:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32374:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32379:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32370:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32370:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32383:34:19", + "type": "", + "value": "CLM8::_issue(limited): issuee no" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32363:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32363:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32363:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32439:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32444:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32435:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32435:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32449:9:19", + "type": "", + "value": "t admin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32428:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32428:31:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32428:31:19" + }, + { + "nodeType": "YulAssignment", + "src": "32469:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32480:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32485:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32476:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32476:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32469:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32257:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32265:3:19", + "type": "" + } + ], + "src": "32123:371:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32646:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32656:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32722:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32727:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32663:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "32663:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32656:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32751:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32756:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32747:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32747:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32760:34:19", + "type": "", + "value": "ERC1155: setting approval status" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32740:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32740:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32740:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32816:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32821:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32812:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "32826:11:19", + "type": "", + "value": " for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "32805:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "32805:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "32848:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32859:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32864:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32855:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "32855:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32848:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32634:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32642:3:19", + "type": "" + } + ], + "src": "32500:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33025:227:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33035:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33101:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33106:2:19", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33042:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33042:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33035:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33130:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33135:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33126:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33126:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33139:34:19", + "type": "", + "value": "ERC1155: accounts and ids length" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33119:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33119:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33119:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33195:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33200:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33191:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33191:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33205:11:19", + "type": "", + "value": " mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33184:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33184:33:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33184:33:19" + }, + { + "nodeType": "YulAssignment", + "src": "33227:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33238:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33243:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33234:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33234:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33227:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33013:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33021:3:19", + "type": "" + } + ], + "src": "32879:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33404:234:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33414:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33480:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33485:2:19", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33421:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33421:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33414:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33509:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33514:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33505:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33505:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33518:34:19", + "type": "", + "value": "CLM8::_issue: issuer not a regis" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33498:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33498:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33498:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33574:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33579:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33570:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33570:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33584:18:19", + "type": "", + "value": "tered REC dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33563:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33563:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33563:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "33613:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33624:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33629:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33620:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33620:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33613:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33392:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33400:3:19", + "type": "" + } + ], + "src": "33258:380:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "33790:226:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "33800:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33866:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33871:2:19", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "33807:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "33807:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33800:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33895:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33900:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33891:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33891:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33904:34:19", + "type": "", + "value": "ERC1155: ids and amounts length " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33884:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33884:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33884:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "33960:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "33965:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33956:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "33970:10:19", + "type": "", + "value": "mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "33949:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "33949:32:19" + }, + "nodeType": "YulExpressionStatement", + "src": "33949:32:19" + }, + { + "nodeType": "YulAssignment", + "src": "33991:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34002:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34007:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "33998:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "33998:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "33991:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "33778:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "33786:3:19", + "type": "" + } + ], + "src": "33644:372:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34168:219:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34178:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34244:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34249:2:19", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34185:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34185:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34178:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34273:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34278:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34269:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34269:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34282:34:19", + "type": "", + "value": "ERC1155: mint to the zero addres" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34262:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34262:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34262:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34338:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34343:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34334:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34334:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34348:3:19", + "type": "", + "value": "s" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34327:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34327:25:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34327:25:19" + }, + { + "nodeType": "YulAssignment", + "src": "34362:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34373:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34378:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34369:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34369:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34362:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34156:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34164:3:19", + "type": "" + } + ], + "src": "34022:365:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34539:247:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34549:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34615:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34620:2:19", + "type": "", + "value": "61" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34556:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34556:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34549:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34644:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34649:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34640:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34640:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34653:34:19", + "type": "", + "value": "CLM8::consumerOrDealer: msg.send" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34633:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34633:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34633:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34709:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34714:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34705:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34705:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "34719:31:19", + "type": "", + "value": "er not a consumer or a dealer" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "34698:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "34698:53:19" + }, + "nodeType": "YulExpressionStatement", + "src": "34698:53:19" + }, + { + "nodeType": "YulAssignment", + "src": "34761:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34772:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "34777:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "34768:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "34768:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "34761:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34527:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34535:3:19", + "type": "" + } + ], + "src": "34393:393:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "34938:222:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "34948:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35014:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35019:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "34955:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "34955:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "34948:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35043:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35048:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35039:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35039:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35052:34:19", + "type": "", + "value": "CLM8::_issue: tokenTypeId is inv" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35032:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35032:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35032:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35108:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35113:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35104:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35104:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35118:6:19", + "type": "", + "value": "alid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35097:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35097:28:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35097:28:19" + }, + { + "nodeType": "YulAssignment", + "src": "35135:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35146:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35151:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35142:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35142:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35135:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "34926:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "34934:3:19", + "type": "" + } + ], + "src": "34792:368:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35312:233:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35322:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35388:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35393:2:19", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35329:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "35329:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35322:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35417:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35422:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35413:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35413:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35426:34:19", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35406:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35406:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35406:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35482:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35487:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35478:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35478:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35492:17:19", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35471:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35471:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35471:39:19" + }, + { + "nodeType": "YulAssignment", + "src": "35520:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35531:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35536:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35527:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35520:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35300:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35308:3:19", + "type": "" + } + ], + "src": "35166:379:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "35697:295:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "35707:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35773:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35778:2:19", + "type": "", + "value": "75" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "35714:58:19" + }, + "nodeType": "YulFunctionCall", + "src": "35714:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35707:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35802:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35807:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35798:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35798:11:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35811:34:19", + "type": "", + "value": "CLM8::_beforeTokenTransfer(limit" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35791:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35791:55:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35791:55:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35867:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35872:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35863:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35863:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35877:34:19", + "type": "", + "value": "ed): only admin and DAO can tran" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35856:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35856:56:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35856:56:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35933:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35938:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35929:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35929:12:19" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "35943:13:19", + "type": "", + "value": "sfer tokens" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "35922:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "35922:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "35922:35:19" + }, + { + "nodeType": "YulAssignment", + "src": "35967:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "35978:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "35983:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "35974:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "35974:12:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "35967:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "35685:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "35693:3:19", + "type": "" + } + ], + "src": "35551:441:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "36260:2259:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36270:28:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36286:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36291:6:19", + "type": "", + "value": "0x0160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36282:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36282:16:19" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "36274:4:19", + "type": "" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36308:167:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36346:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36376:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36383:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36372:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36372:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36366:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36366:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36350:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36436:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36454:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36459:4:19", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36450:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36450:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "36402:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36402:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36402:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36485:167:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36527:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36557:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36564:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36553:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36553:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36547:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36547:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36531:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36613:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36631:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36636:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36627:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8", + "nodeType": "YulIdentifier", + "src": "36583:29:19" + }, + "nodeType": "YulFunctionCall", + "src": "36583:59:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36583:59:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36662:166:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36699:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36729:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36736:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36725:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36725:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36719:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36719:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36703:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36789:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36807:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36812:4:19", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36803:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36803:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "36755:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36755:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36755:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "36838:166:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "36875:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "36905:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36912:4:19", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36901:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36901:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "36895:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "36895:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "36879:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "36965:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "36983:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "36988:4:19", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "36979:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "36979:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "36931:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "36931:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "36931:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37014:168:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37053:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37083:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37090:4:19", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37079:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37079:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37073:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37073:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37057:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37143:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37161:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37166:4:19", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37157:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37157:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37109:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37109:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37109:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37192:168:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37231:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37261:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37268:4:19", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37257:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37257:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37251:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37251:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37235:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37321:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37339:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37344:4:19", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37335:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37335:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37287:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37287:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37287:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37370:171:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37412:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37442:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37449:4:19", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37438:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37438:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37432:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37432:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37416:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37502:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37520:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37525:4:19", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37516:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37516:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37468:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37468:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37468:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37551:179:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37601:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37631:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37638:4:19", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37627:16:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37621:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37621:23:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37605:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37691:12:19" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37709:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37714:4:19", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37705:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37705:14:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "37657:33:19" + }, + "nodeType": "YulFunctionCall", + "src": "37657:63:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37657:63:19" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37740:243:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "37779:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "37809:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37816:6:19", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37805:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37805:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "37799:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "37799:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "37783:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37849:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "37854:6:19", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "37845:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37845:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37867:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "37873:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "37863:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "37863:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "37838:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "37838:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "37838:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "37891:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "37953:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37967:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "37899:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "37899:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "37891:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "37993:243:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38032:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38062:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38069:6:19", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38058:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38058:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38052:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "38052:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "38036:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38102:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38107:6:19", + "type": "", + "value": "0x0120" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38098:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38098:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38120:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38126:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38116:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38116:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38091:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38091:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38091:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "38144:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "38206:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38220:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38152:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "38152:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38144:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "38246:246:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "38288:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38318:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38325:6:19", + "type": "", + "value": "0x0140" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38314:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38314:18:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "38308:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "38308:25:19" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "38292:12:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38358:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "38363:6:19", + "type": "", + "value": "0x0140" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "38354:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38354:16:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38376:4:19" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38382:3:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "38372:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "38372:14:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38347:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38347:40:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38347:40:19" + }, + { + "nodeType": "YulAssignment", + "src": "38400:81:19", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "38462:12:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38476:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "38408:53:19" + }, + "nodeType": "YulFunctionCall", + "src": "38408:73:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38400:4:19" + } + ] + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "38502:11:19", + "value": { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "38509:4:19" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "38502:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_CarbonTokenDetails_$7667_memory_ptr_to_t_struct$_CarbonTokenDetails_$7667_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "36239:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "36246:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "36255:3:19", + "type": "" + } + ], + "src": "36114:2405:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38580:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38597:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38620:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38602:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38602:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38590:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38590:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38590:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38568:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38575:3:19", + "type": "" + } + ], + "src": "38525:108:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38704:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38721:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38744:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "38726:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "38726:24:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38714:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38714:37:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38714:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38692:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38699:3:19", + "type": "" + } + ], + "src": "38639:118:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38814:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38831:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38852:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "38836:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "38836:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38824:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38824:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38824:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38802:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38809:3:19", + "type": "" + } + ], + "src": "38763:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "38932:51:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "38949:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "38970:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "38954:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "38954:22:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "38942:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "38942:35:19" + }, + "nodeType": "YulExpressionStatement", + "src": "38942:35:19" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "38920:5:19", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "38927:3:19", + "type": "" + } + ], + "src": "38871:112:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39087:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39097:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39109:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39120:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39105:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39105:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39097:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39177:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39190:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39201:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39186:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39186:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39133:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39133:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39133:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39059:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39071:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39082:4:19", + "type": "" + } + ], + "src": "38989:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "39545:725:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "39555:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39567:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39578:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39563:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39563:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39555:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "39636:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39649:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39660:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39645:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39645:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39592:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39592:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39592:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "39717:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39730:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39741:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39726:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39726:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "39673:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "39673:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39673:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39766:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39777:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39762:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39786:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39792:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39782:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39782:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39755:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39755:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "39812:116:19", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "39914:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39923:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "39820:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "39820:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39812:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39949:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "39960:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "39945:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39945:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39969:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "39975:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "39965:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "39965:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "39938:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "39938:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "39938:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "39995:116:19", + "value": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "40097:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40106:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40003:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "40003:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "39995:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40132:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40143:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40128:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40128:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40153:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40159:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40149:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40149:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40121:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40121:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40121:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "40179:84:19", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "40249:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40258:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40187:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "40187:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40179:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "39485:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "39497:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "39505:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "39513:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "39521:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "39529:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "39540:4:19", + "type": "" + } + ], + "src": "39217:1053:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "40504:523:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "40514:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40526:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40537:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40522:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40522:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40514:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "40595:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40608:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40619:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40604:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40604:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "40551:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40551:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40551:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "40676:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40689:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40700:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40685:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40685:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "40632:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40632:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40632:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "40758:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40771:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40782:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40767:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40767:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "40714:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40714:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40714:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "40840:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40853:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40864:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40849:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40849:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "40796:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "40796:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40796:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40889:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "40900:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "40885:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40885:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40910:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "40916:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "40906:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "40906:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "40878:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "40878:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "40878:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "40936:84:19", + "value": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "41006:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41015:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "40944:61:19" + }, + "nodeType": "YulFunctionCall", + "src": "40944:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "40936:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "40444:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "40456:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "40464:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "40472:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "40480:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "40488:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "40499:4:19", + "type": "" + } + ], + "src": "40276:751:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41159:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41169:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41181:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41192:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41177:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41169:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41249:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41262:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41273:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41258:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "41205:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "41205:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41205:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "41330:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41343:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41354:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41339:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41339:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "41286:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "41286:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41286:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41123:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "41135:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41143:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41154:4:19", + "type": "" + } + ], + "src": "41033:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41519:225:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41529:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41541:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41552:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41537:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41537:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41529:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41576:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "41587:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41572:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41572:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41595:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41601:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "41591:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41591:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "41565:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "41565:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "41565:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "41621:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "41723:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41732:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "41629:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "41629:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41621:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41491:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41503:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41514:4:19", + "type": "" + } + ], + "src": "41371:373:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "41976:408:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "41986:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "41998:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42009:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "41994:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "41994:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "41986:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42033:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42044:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42029:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42029:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42052:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42058:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42048:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42048:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42022:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42022:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42022:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "42078:116:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42180:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42189:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42086:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "42086:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42078:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42215:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42226:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42211:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42211:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42235:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42241:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "42231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42231:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "42204:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "42204:48:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42204:48:19" + }, + { + "nodeType": "YulAssignment", + "src": "42261:116:19", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "42363:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42372:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "42269:93:19" + }, + "nodeType": "YulFunctionCall", + "src": "42269:108:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42261:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "41940:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "41952:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "41960:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "41971:4:19", + "type": "" + } + ], + "src": "41750:634:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42482:118:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42492:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42504:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42515:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42500:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42500:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42492:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42566:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42579:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42590:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42575:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42575:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42528:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42528:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42528:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42454:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "42466:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42477:4:19", + "type": "" + } + ], + "src": "42390:210:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "42786:424:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "42796:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42808:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42819:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42804:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42804:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "42796:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "42871:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42884:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42895:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42880:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42880:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42833:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42833:65:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42833:65:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "42946:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "42959:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "42970:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "42955:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "42955:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42908:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42908:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42908:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "43022:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43035:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43046:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43031:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43031:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "42984:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "42984:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "42984:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "43098:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43111:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43122:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43107:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43107:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "43060:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "43060:66:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43060:66:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "43174:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43187:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43198:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43183:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43183:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "43136:37:19" + }, + "nodeType": "YulFunctionCall", + "src": "43136:67:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43136:67:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool_t_bool_t_bool_t_bool_t_bool__to_t_bool_t_bool_t_bool_t_bool_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "42726:9:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "42738:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "42746:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "42754:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "42762:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "42770:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "42781:4:19", + "type": "" + } + ], + "src": "42606:604:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43314:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43324:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43336:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43347:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43332:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43332:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43324:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43404:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43417:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43428:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43413:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43413:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "43360:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "43360:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43360:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43286:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43298:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43309:4:19", + "type": "" + } + ], + "src": "43216:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43562:195:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43572:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43584:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43595:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43580:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43580:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43572:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43619:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43630:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43615:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43615:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43638:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43644:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "43634:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43634:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43608:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43608:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43608:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "43664:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "43736:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43745:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "43672:63:19" + }, + "nodeType": "YulFunctionCall", + "src": "43672:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43664:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43534:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "43546:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43557:4:19", + "type": "" + } + ], + "src": "43444:313:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "43934:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "43944:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43956:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "43967:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43952:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43952:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "43944:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "43991:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44002:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "43987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "43987:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44010:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44016:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44006:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44006:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "43980:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "43980:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "43980:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44036:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44170:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44044:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44044:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44036:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "43914:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "43929:4:19", + "type": "" + } + ], + "src": "43763:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44359:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44369:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44381:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44392:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44377:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44377:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44369:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44416:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44427:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44412:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44412:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44435:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44441:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44431:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44431:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44405:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44405:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44405:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44461:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44595:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44469:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44469:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44461:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44339:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44354:4:19", + "type": "" + } + ], + "src": "44188:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "44784:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "44794:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44806:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44817:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44802:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44802:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44794:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44841:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "44852:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "44837:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44837:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44860:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "44866:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "44856:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "44856:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "44830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "44830:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "44830:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "44886:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45020:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "44894:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "44894:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "44886:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "44764:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "44779:4:19", + "type": "" + } + ], + "src": "44613:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45209:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45219:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45231:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45242:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45227:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45227:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45219:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45266:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45277:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45262:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45262:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45285:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45291:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45281:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45281:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45255:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45255:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45255:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45311:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45445:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45319:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45319:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45311:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45189:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45204:4:19", + "type": "" + } + ], + "src": "45038:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "45634:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "45644:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45656:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45667:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45652:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45652:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45644:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45691:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "45702:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "45687:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45687:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45710:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "45716:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "45706:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "45706:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45680:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "45680:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "45680:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "45736:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45870:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "45744:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "45744:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "45736:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "45614:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "45629:4:19", + "type": "" + } + ], + "src": "45463:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46059:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46069:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46081:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46092:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46077:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46077:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46069:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46116:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46127:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46112:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46112:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46135:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46141:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46131:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46131:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46105:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46105:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46105:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46161:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46295:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46169:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46169:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46161:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46039:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46054:4:19", + "type": "" + } + ], + "src": "45888:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46484:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46494:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46506:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46517:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46502:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46502:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46494:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46541:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46552:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46537:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46537:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46560:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46566:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46556:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46556:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46530:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46530:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46530:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "46586:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46720:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "46594:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "46594:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46586:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46464:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46479:4:19", + "type": "" + } + ], + "src": "46313:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "46909:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "46919:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46931:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46942:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46927:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46927:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46919:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46966:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "46977:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "46962:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46962:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "46985:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "46991:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "46981:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "46981:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "46955:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "46955:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "46955:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47011:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47145:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47019:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47019:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47011:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "46889:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "46904:4:19", + "type": "" + } + ], + "src": "46738:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47334:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47344:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47356:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47367:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47352:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47352:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47344:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47391:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47402:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47387:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47387:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47410:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47416:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47406:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47406:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47380:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47380:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47380:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47436:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47570:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47444:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47444:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47436:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47314:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47329:4:19", + "type": "" + } + ], + "src": "47163:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "47759:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "47769:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47781:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47792:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47777:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47777:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47769:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47816:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "47827:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "47812:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47812:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47835:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "47841:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "47831:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "47831:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "47805:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "47805:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "47805:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "47861:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47995:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "47869:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "47869:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "47861:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "47739:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "47754:4:19", + "type": "" + } + ], + "src": "47588:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48184:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48194:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48206:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48217:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48202:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48202:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48194:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48241:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48252:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48237:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48237:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48260:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48266:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48256:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48256:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48230:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48230:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48230:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48286:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48420:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48294:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48294:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48286:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48164:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48179:4:19", + "type": "" + } + ], + "src": "48013:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "48609:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "48619:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48631:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48642:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48627:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48627:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48619:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48666:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "48677:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "48662:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48662:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48685:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "48691:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "48681:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "48681:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "48655:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "48655:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "48655:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "48711:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48845:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "48719:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "48719:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "48711:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "48589:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "48604:4:19", + "type": "" + } + ], + "src": "48438:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49034:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49044:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49056:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49067:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49052:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49052:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49044:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49091:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49102:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49087:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49087:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49110:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49116:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49106:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49106:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49080:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49080:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49080:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49136:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49270:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49144:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49144:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49136:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49014:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49029:4:19", + "type": "" + } + ], + "src": "48863:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49459:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49469:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49481:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49492:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49477:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49477:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49469:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49516:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49527:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49512:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49512:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49535:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49541:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49531:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49531:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49505:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49505:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49505:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49561:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49695:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49569:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49569:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49561:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49439:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49454:4:19", + "type": "" + } + ], + "src": "49288:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "49884:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "49894:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49906:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49917:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49902:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49902:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49894:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49941:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "49952:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "49937:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49937:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49960:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "49966:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "49956:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "49956:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "49930:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "49930:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "49930:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "49986:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50120:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "49994:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "49994:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "49986:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "49864:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "49879:4:19", + "type": "" + } + ], + "src": "49713:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50309:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50319:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50331:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50342:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50327:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50327:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50319:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50366:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50377:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50362:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50362:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50385:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50391:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50381:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50381:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50355:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50355:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50355:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50411:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50545:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50419:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50419:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50411:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50289:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50304:4:19", + "type": "" + } + ], + "src": "50138:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "50734:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "50744:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50756:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50767:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50752:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50752:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50744:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50791:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "50802:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "50787:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50787:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50810:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "50816:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "50806:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "50806:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "50780:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "50780:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "50780:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "50836:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50970:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "50844:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "50844:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "50836:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "50714:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "50729:4:19", + "type": "" + } + ], + "src": "50563:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51159:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51169:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51181:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51192:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51177:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51177:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51169:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51216:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51227:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51212:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51212:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51235:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51241:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51231:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51231:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51205:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51205:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51205:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51261:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51395:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51269:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51269:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51261:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51139:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51154:4:19", + "type": "" + } + ], + "src": "50988:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "51584:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "51594:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51606:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51617:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51602:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51602:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51594:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51641:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "51652:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "51637:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51637:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51660:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "51666:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "51656:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "51656:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "51630:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "51630:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "51630:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "51686:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51820:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "51694:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "51694:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "51686:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51564:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "51579:4:19", + "type": "" + } + ], + "src": "51413:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52009:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52019:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52031:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52042:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52027:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52027:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52019:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52066:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52077:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52062:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52062:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52085:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52091:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52081:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52081:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52055:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52055:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52055:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52111:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52245:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52119:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52119:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52111:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "51989:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52004:4:19", + "type": "" + } + ], + "src": "51838:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52434:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52444:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52456:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52467:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52452:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52452:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52444:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52491:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52487:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52487:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52510:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52516:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52506:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52506:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52480:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52480:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52480:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52536:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52670:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52544:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52544:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52536:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52414:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52429:4:19", + "type": "" + } + ], + "src": "52263:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "52859:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "52869:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52881:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52892:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52877:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52877:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52869:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52916:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52927:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "52912:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52912:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52935:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "52941:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "52931:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "52931:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "52905:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "52905:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "52905:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "52961:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53095:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "52969:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "52969:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "52961:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "52839:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "52854:4:19", + "type": "" + } + ], + "src": "52688:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "53284:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "53294:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53306:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53317:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53302:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53302:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53294:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53341:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53352:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53337:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53337:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53360:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53366:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53356:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53356:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53330:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53330:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53330:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "53386:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53520:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53394:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "53394:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53386:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "53264:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "53279:4:19", + "type": "" + } + ], + "src": "53113:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "53709:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "53719:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53731:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53742:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53727:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53727:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53719:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53766:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "53777:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "53762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53762:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53785:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "53791:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "53781:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "53781:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "53755:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "53755:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "53755:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "53811:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53945:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "53819:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "53819:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "53811:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "53689:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "53704:4:19", + "type": "" + } + ], + "src": "53538:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54134:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54144:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54156:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54167:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54152:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54152:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54144:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54191:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54202:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54187:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54187:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54210:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54216:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "54206:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54206:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "54180:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "54180:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54180:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "54236:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54370:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "54244:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "54244:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54236:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54114:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54129:4:19", + "type": "" + } + ], + "src": "53963:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54559:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54569:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54581:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54592:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54577:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54577:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54569:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54616:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "54627:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "54612:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54612:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54635:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "54641:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "54631:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "54631:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "54605:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "54605:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "54605:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "54661:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54795:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "54669:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "54669:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54661:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54539:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54554:4:19", + "type": "" + } + ], + "src": "54388:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "54984:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "54994:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55006:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55017:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55002:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55002:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "54994:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55041:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55052:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55037:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55037:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55060:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55066:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55056:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55056:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55030:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55030:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55030:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55086:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55220:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55094:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55094:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55086:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "54964:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "54979:4:19", + "type": "" + } + ], + "src": "54813:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "55409:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "55419:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55431:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55442:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55427:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55427:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55419:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55466:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55477:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55462:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55462:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55485:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55491:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55481:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55481:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55455:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55455:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55455:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55511:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55645:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55519:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55519:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55511:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "55389:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "55404:4:19", + "type": "" + } + ], + "src": "55238:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "55834:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "55844:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55856:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55867:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55852:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55852:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55844:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55891:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55902:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "55887:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55887:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55910:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "55916:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "55906:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "55906:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "55880:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "55880:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "55880:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "55936:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56070:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "55944:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "55944:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "55936:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "55814:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "55829:4:19", + "type": "" + } + ], + "src": "55663:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56259:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "56269:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56281:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56292:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56277:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56277:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56269:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56316:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56327:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56312:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56312:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56335:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56341:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "56331:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56331:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "56305:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "56305:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56305:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "56361:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56495:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "56369:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "56369:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56361:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "56239:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "56254:4:19", + "type": "" + } + ], + "src": "56088:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "56684:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "56694:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56706:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56717:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56702:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56702:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56694:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56741:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "56752:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "56737:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56737:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56760:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "56766:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "56756:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "56756:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "56730:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "56730:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "56730:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "56786:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56920:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "56794:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "56794:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "56786:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "56664:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "56679:4:19", + "type": "" + } + ], + "src": "56513:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57109:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57119:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57131:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57142:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57127:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57127:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57119:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57166:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57177:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57162:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57162:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57185:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57191:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "57181:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57181:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "57155:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "57155:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57155:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "57211:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57345:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "57219:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "57219:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57211:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57089:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57104:4:19", + "type": "" + } + ], + "src": "56938:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57534:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57544:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57556:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57567:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57552:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57552:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57544:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57591:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57602:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57587:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57587:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57610:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57616:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "57606:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57606:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "57580:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "57580:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "57580:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "57636:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57770:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "57644:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "57644:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57636:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57514:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57529:4:19", + "type": "" + } + ], + "src": "57363:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "57959:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57969:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "57981:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "57992:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "57977:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "57977:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "57969:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58016:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58027:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58012:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58012:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58035:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58041:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58031:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58031:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58005:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58005:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58005:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58061:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58195:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58069:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58069:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58061:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "57939:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "57954:4:19", + "type": "" + } + ], + "src": "57788:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58384:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58394:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58406:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58417:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58402:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58402:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58394:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58441:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58452:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58437:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58437:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58460:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58466:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58456:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58456:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58430:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58430:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58430:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58486:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58620:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58494:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58494:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58486:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "58364:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "58379:4:19", + "type": "" + } + ], + "src": "58213:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "58809:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "58819:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58831:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58842:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58827:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58827:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58819:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58866:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "58877:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "58862:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58862:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58885:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "58891:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "58881:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "58881:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "58855:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "58855:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "58855:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "58911:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59045:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "58919:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "58919:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "58911:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "58789:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "58804:4:19", + "type": "" + } + ], + "src": "58638:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59234:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59244:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59256:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59267:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59252:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59252:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59244:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59291:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59302:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59287:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59287:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59310:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59316:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "59306:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59306:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "59280:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "59280:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "59280:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "59336:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59470:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "59344:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "59344:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59336:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "59214:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "59229:4:19", + "type": "" + } + ], + "src": "59063:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "59659:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "59669:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59681:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59692:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59677:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59677:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59669:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59716:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "59727:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "59712:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59712:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59735:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "59741:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "59731:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "59731:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "59705:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "59705:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "59705:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "59761:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59895:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "59769:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "59769:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "59761:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "59639:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "59654:4:19", + "type": "" + } + ], + "src": "59488:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60084:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60094:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60106:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60117:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60102:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60102:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60094:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60141:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60152:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60137:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60137:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60160:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60166:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "60156:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60156:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60130:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60130:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60130:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "60186:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60320:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "60194:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "60194:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60186:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60064:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60079:4:19", + "type": "" + } + ], + "src": "59913:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60509:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60519:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60531:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60542:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60527:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60519:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60566:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60577:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60562:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60562:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60585:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60591:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "60581:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60581:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60555:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60555:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60555:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "60611:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60745:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "60619:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "60619:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60611:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60489:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60504:4:19", + "type": "" + } + ], + "src": "60338:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "60934:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "60944:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60956:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "60967:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60952:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60952:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "60944:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "60991:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61002:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "60987:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "60987:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61010:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61016:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61006:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61006:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "60980:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "60980:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "60980:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61036:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61170:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61044:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61044:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61036:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "60914:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "60929:4:19", + "type": "" + } + ], + "src": "60763:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61359:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61369:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61381:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61392:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61377:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61377:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61369:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61416:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61427:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61412:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61412:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61435:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61441:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61431:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61431:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61405:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61405:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61405:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61461:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61595:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61469:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61469:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61461:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "61339:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "61354:4:19", + "type": "" + } + ], + "src": "61188:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "61784:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61794:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61806:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61817:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61802:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61802:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61794:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61841:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "61852:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "61837:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61837:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61860:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "61866:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "61856:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "61856:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "61830:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "61830:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "61830:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "61886:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62020:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "61894:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "61894:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "61886:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "61764:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "61779:4:19", + "type": "" + } + ], + "src": "61613:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62209:248:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62219:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62231:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62242:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62227:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62227:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62219:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62266:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62277:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62262:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62262:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62285:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62291:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "62281:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62281:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "62255:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62255:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "62255:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "62311:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62445:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "62319:124:19" + }, + "nodeType": "YulFunctionCall", + "src": "62319:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62311:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62189:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62204:4:19", + "type": "" + } + ], + "src": "62038:419:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62633:247:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62643:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62655:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62666:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62651:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62651:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62643:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62690:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "62701:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "62686:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62686:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62709:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "62715:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "62705:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "62705:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "62679:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "62679:47:19" + }, + "nodeType": "YulExpressionStatement", + "src": "62679:47:19" + }, + { + "nodeType": "YulAssignment", + "src": "62735:138:19", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "62859:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62868:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_CarbonTokenDetails_$7667_memory_ptr_to_t_struct$_CarbonTokenDetails_$7667_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "62743:115:19" + }, + "nodeType": "YulFunctionCall", + "src": "62743:130:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62735:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_CarbonTokenDetails_$7667_memory_ptr__to_t_struct$_CarbonTokenDetails_$7667_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62605:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "62617:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62628:4:19", + "type": "" + } + ], + "src": "62463:417:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "62984:124:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62994:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63006:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63017:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63002:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63002:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "62994:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63074:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63087:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63098:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63083:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63083:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63030:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63030:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63030:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "62956:9:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "62968:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "62979:4:19", + "type": "" + } + ], + "src": "62886:222:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63240:206:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63250:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63262:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63273:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63258:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63258:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "63250:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63330:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63343:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63354:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63339:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63339:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63286:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63286:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63286:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "63411:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63424:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63435:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63420:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63420:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63367:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63367:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63367:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "63204:9:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "63216:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "63224:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "63235:4:19", + "type": "" + } + ], + "src": "63114:332:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "63878:1153:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "63888:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63900:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63911:3:19", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63896:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63896:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "63888:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "63969:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "63982:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "63993:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "63978:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "63978:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "63925:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "63925:71:19" + }, + "nodeType": "YulExpressionStatement", + "src": "63925:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "64050:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64063:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64074:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64059:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64059:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64006:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64006:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64006:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "64132:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64145:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64156:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64141:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64141:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64088:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64088:72:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64088:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "64210:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64223:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64234:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64219:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64219:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "64170:39:19" + }, + "nodeType": "YulFunctionCall", + "src": "64170:68:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64170:68:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "64292:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64305:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64316:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64301:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64301:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64248:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64248:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64248:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "64375:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64388:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64399:3:19", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64384:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64384:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64331:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64331:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64331:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "64458:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64471:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64482:3:19", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64467:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64467:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64414:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64414:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64414:73:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "64541:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64554:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64565:3:19", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64550:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64550:19:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "64497:43:19" + }, + "nodeType": "YulFunctionCall", + "src": "64497:73:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64497:73:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64591:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64602:3:19", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64587:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64587:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64612:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64618:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64608:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64608:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64580:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64580:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64580:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64638:83:19", + "value": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "64707:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64716:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64646:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64646:75:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64638:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64742:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64753:3:19", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64738:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64738:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64763:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64769:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64759:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64759:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64731:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64731:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64731:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64789:83:19", + "value": { + "arguments": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "64858:6:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64867:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64797:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64797:75:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64789:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64893:9:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "64904:3:19", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "64889:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64889:19:19" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64914:4:19" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "64920:9:19" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "64910:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "64910:20:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "64882:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "64882:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "64882:49:19" + }, + { + "nodeType": "YulAssignment", + "src": "64940:84:19", + "value": { + "arguments": [ + { + "name": "value10", + "nodeType": "YulIdentifier", + "src": "65009:7:19" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "65019:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "64948:60:19" + }, + "nodeType": "YulFunctionCall", + "src": "64948:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "64940:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "63769:9:19", + "type": "" + }, + { + "name": "value10", + "nodeType": "YulTypedName", + "src": "63781:7:19", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "63790:6:19", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "63798:6:19", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "63806:6:19", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "63814:6:19", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "63822:6:19", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "63830:6:19", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "63838:6:19", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "63846:6:19", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "63854:6:19", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "63862:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "63873:4:19", + "type": "" + } + ], + "src": "63452:1579:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65077:238:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "65087:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65103:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "65097:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "65097:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65087:6:19" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "65115:35:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65137:6:19" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65145:4:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65133:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65133:17:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "65119:10:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65261:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65263:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65263:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65263:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65204:10:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65216:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65201:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65201:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65240:10:19" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "65252:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "65237:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65237:22:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "65198:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65198:62:19" + }, + "nodeType": "YulIf", + "src": "65195:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65294:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "65298:10:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "65287:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "65287:22:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65287:22:19" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65061:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "65070:6:19", + "type": "" + } + ], + "src": "65037:278:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65403:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65508:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65510:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65510:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65510:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65480:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65488:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65477:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65477:30:19" + }, + "nodeType": "YulIf", + "src": "65474:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "65535:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65547:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65555:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "65543:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65543:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65535:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "65597:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65609:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65615:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65605:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65605:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65597:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65387:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65398:4:19", + "type": "" + } + ], + "src": "65321:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "65715:224:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "65820:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "65822:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "65822:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "65822:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65792:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65800:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "65789:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "65789:30:19" + }, + "nodeType": "YulIf", + "src": "65786:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "65847:25:19", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "65859:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65867:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "65855:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65855:17:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65847:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "65909:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65921:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "65927:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "65917:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "65917:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "65909:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65699:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "65710:4:19", + "type": "" + } + ], + "src": "65633:306:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66011:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66116:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "66118:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "66118:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66118:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66088:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66096:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "66085:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "66085:30:19" + }, + "nodeType": "YulIf", + "src": "66082:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "66163:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66179:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66187:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66175:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66175:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66198:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "66194:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66194:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "66171:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66171:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66163:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66241:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66253:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66259:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66249:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66249:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66241:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "65995:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "66006:4:19", + "type": "" + } + ], + "src": "65945:326:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66344:260:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66449:17:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "66451:11:19" + }, + "nodeType": "YulFunctionCall", + "src": "66451:13:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66451:13:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66421:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66429:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "66418:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "66418:30:19" + }, + "nodeType": "YulIf", + "src": "66415:2:19" + }, + { + "nodeType": "YulAssignment", + "src": "66496:41:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66512:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66520:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66508:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66508:17:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66531:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "66527:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66527:9:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "66504:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66504:33:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66496:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66574:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66586:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66592:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66582:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66582:15:19" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "66574:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "66328:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "66339:4:19", + "type": "" + } + ], + "src": "66277:327:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66682:60:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66692:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66700:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66692:4:19" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "66713:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66725:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66730:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "66721:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "66721:14:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66713:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "66669:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "66677:4:19", + "type": "" + } + ], + "src": "66610:132:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66802:87:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66812:11:19", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66820:3:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66812:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66840:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "66843:3:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "66833:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "66833:14:19" + }, + "nodeType": "YulExpressionStatement", + "src": "66833:14:19" + }, + { + "nodeType": "YulAssignment", + "src": "66856:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66874:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "66877:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "66864:9:19" + }, + "nodeType": "YulFunctionCall", + "src": "66864:18:19" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "66856:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "66789:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "66797:4:19", + "type": "" + } + ], + "src": "66748:141:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "66969:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "66980:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "66996:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "66990:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "66990:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "66980:6:19" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "66952:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "66962:6:19", + "type": "" + } + ], + "src": "66895:114:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67073:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67084:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "67100:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67094:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "67094:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67084:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "67056:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67066:6:19", + "type": "" + } + ], + "src": "67015:98:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67178:40:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67189:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "67205:5:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67199:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "67199:12:19" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67189:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "67161:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67171:6:19", + "type": "" + } + ], + "src": "67119:99:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67299:38:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "67309:22:19", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "67321:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67326:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67317:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67317:14:19" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "67309:4:19" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "67286:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "67294:4:19", + "type": "" + } + ], + "src": "67224:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67454:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67471:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67476:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67464:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67464:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67464:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67492:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67511:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67516:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67507:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67507:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67492:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67426:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67431:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67442:11:19", + "type": "" + } + ], + "src": "67343:184:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67628:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67645:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67650:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67638:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67638:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67638:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67666:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67685:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67690:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67681:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67681:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67666:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67600:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67605:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67616:11:19", + "type": "" + } + ], + "src": "67533:168:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67793:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67810:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67815:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67803:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67803:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67803:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "67831:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67850:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "67855:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "67846:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "67846:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "67831:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67765:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67770:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67781:11:19", + "type": "" + } + ], + "src": "67707:159:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "67968:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "67985:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "67990:6:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "67978:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "67978:19:19" + }, + "nodeType": "YulExpressionStatement", + "src": "67978:19:19" + }, + { + "nodeType": "YulAssignment", + "src": "68006:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "68025:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68030:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "68021:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68021:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "68006:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67940:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "67945:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "67956:11:19", + "type": "" + } + ], + "src": "67872:169:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68092:51:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68102:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68131:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "68113:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "68113:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68102:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68074:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68084:7:19", + "type": "" + } + ], + "src": "68047:96:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68191:48:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68201:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68226:5:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "68219:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68219:13:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "68212:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68212:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68201:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68173:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68183:7:19", + "type": "" + } + ], + "src": "68149:90:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68290:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68300:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68311:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68300:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68272:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68282:7:19", + "type": "" + } + ], + "src": "68245:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68372:105:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68382:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68397:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68404:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68393:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68393:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68382:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68354:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68364:7:19", + "type": "" + } + ], + "src": "68328:149:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68528:81:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68538:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68553:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68560:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68549:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68549:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68538:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68510:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68520:7:19", + "type": "" + } + ], + "src": "68483:126:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68660:32:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68670:16:19", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68681:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68670:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68642:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68652:7:19", + "type": "" + } + ], + "src": "68615:77:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68741:43:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68751:27:19", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68766:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68773:4:19", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "68762:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68762:16:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "68751:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "68723:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "68733:7:19", + "type": "" + } + ], + "src": "68698:86:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68841:103:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "68864:3:19" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "68869:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68874:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "68851:12:19" + }, + "nodeType": "YulFunctionCall", + "src": "68851:30:19" + }, + "nodeType": "YulExpressionStatement", + "src": "68851:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "68922:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68927:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "68918:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "68918:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "68936:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "68911:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "68911:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "68911:27:19" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "68823:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "68828:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "68833:6:19", + "type": "" + } + ], + "src": "68790:154:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "68999:258:19", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "69009:10:19", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69018:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "69013:1:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69078:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "69103:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69108:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69099:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69099:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "69122:3:19" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69127:1:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69118:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69118:11:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69112:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69112:18:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "69092:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69092:39:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69092:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69039:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69042:6:19" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "69036:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69036:13:19" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "69050:19:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69052:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69061:1:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69064:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69057:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69057:10:19" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69052:1:19" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "69032:3:19", + "statements": [] + }, + "src": "69028:113:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69175:76:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "69225:3:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69230:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69221:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69221:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69239:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "69214:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69214:27:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69214:27:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "69156:1:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "69159:6:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69153:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69153:13:19" + }, + "nodeType": "YulIf", + "src": "69150:2:19" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "68981:3:19", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "68986:3:19", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "68991:6:19", + "type": "" + } + ], + "src": "68950:307:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69286:25:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "invalid", + "nodeType": "YulIdentifier", + "src": "69296:7:19" + }, + "nodeType": "YulFunctionCall", + "src": "69296:9:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69296:9:19" + } + ] + }, + "name": "panic_error", + "nodeType": "YulFunctionDefinition", + "src": "69263:48:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69365:54:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69375:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69393:5:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69400:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69389:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69389:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69409:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "69405:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69405:7:19" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "69385:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69385:28:19" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "69375:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "69348:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "69358:6:19", + "type": "" + } + ], + "src": "69317:102:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69478:53:19", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69488:36:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69513:3:19", + "type": "", + "value": "224" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69518:5:19" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "69509:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69509:15:19" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "69488:8:19" + } + ] + } + ] + }, + "name": "shift_right_224_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "69459:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "69469:8:19", + "type": "" + } + ], + "src": "69425:106:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69580:790:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "69620:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "69622:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69596:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69596:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69614:4:19", + "type": "", + "value": "0x44" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "69593:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69593:26:19" + }, + "nodeType": "YulIf", + "src": "69590:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69654:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69657:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69660:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "69639:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69639:23:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69639:23:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69671:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69713:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69707:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69707:8:19" + } + ], + "functionName": { + "name": "shift_right_224_unsigned", + "nodeType": "YulIdentifier", + "src": "69682:24:19" + }, + "nodeType": "YulFunctionCall", + "src": "69682:34:19" + }, + "variables": [ + { + "name": "sig", + "nodeType": "YulTypedName", + "src": "69675:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "69756:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "69758:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "sig", + "nodeType": "YulIdentifier", + "src": "69738:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69743:10:19", + "type": "", + "value": "0x08c379a0" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "69735:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69735:19:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "69728:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "69728:27:19" + }, + "nodeType": "YulIf", + "src": "69725:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69775:21:19", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69793:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69787:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69787:9:19" + }, + "variables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "69779:4:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "69820:4:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69826:1:19", + "type": "", + "value": "4" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69833:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69833:16:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69851:1:19", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "69829:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69829:24:19" + } + ], + "functionName": { + "name": "returndatacopy", + "nodeType": "YulIdentifier", + "src": "69805:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69805:49:19" + }, + "nodeType": "YulExpressionStatement", + "src": "69805:49:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "69864:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "69884:4:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "69878:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "69878:11:19" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "69868:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70015:29:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70029:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "69920:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69928:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69917:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69917:30:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "69968:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "69976:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "69964:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "69964:17:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "69983:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "69983:16:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "69961:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69961:39:19" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "69901:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "69901:113:19" + }, + "nodeType": "YulIf", + "src": "69898:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70054:28:19", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "70069:4:19" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "70075:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70065:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70065:17:19" + }, + "variables": [ + { + "name": "msg", + "nodeType": "YulTypedName", + "src": "70058:3:19", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70091:24:19", + "value": { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70111:3:19" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "70105:5:19" + }, + "nodeType": "YulFunctionCall", + "src": "70105:10:19" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "70095:6:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70158:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70160:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70130:6:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70138:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "70127:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70127:30:19" + }, + "nodeType": "YulIf", + "src": "70124:2:19" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "70177:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70196:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70201:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70192:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70192:14:19" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70208:6:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70188:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70188:27:19" + }, + "variables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "70181:3:19", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70264:9:19", + "statements": [ + { + "nodeType": "YulLeave", + "src": "70266:5:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "70230:3:19" + }, + { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "70239:4:19" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nodeType": "YulIdentifier", + "src": "70245:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "70245:16:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70235:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70235:27:19" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "70227:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70227:36:19" + }, + "nodeType": "YulIf", + "src": "70224:2:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70290:2:19", + "type": "", + "value": "64" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70302:3:19" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70307:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70298:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70298:14:19" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "70336:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "70314:21:19" + }, + "nodeType": "YulFunctionCall", + "src": "70314:29:19" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "70294:3:19" + }, + "nodeType": "YulFunctionCall", + "src": "70294:50:19" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "70283:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70283:62:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70283:62:19" + }, + { + "nodeType": "YulAssignment", + "src": "70354:10:19", + "value": { + "name": "msg", + "nodeType": "YulIdentifier", + "src": "70361:3:19" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "70354:3:19" + } + ] + } + ] + }, + "name": "try_decode_error_message", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "69576:3:19", + "type": "" + } + ], + "src": "69537:833:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70419:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70476:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70485:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70488:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70478:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70478:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70478:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70442:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70467:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "70449:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70449:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70439:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70439:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70432:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70432:43:19" + }, + "nodeType": "YulIf", + "src": "70429:2:19" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70412:5:19", + "type": "" + } + ], + "src": "70376:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70544:76:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70598:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70607:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70610:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70600:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70600:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70600:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70567:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70589:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "70574:14:19" + }, + "nodeType": "YulFunctionCall", + "src": "70574:21:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70564:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70564:32:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70557:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70557:40:19" + }, + "nodeType": "YulIf", + "src": "70554:2:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70537:5:19", + "type": "" + } + ], + "src": "70504:116:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70669:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70726:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70735:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70738:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70728:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70728:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70728:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70692:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70717:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "70699:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70699:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70689:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70689:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70682:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70682:43:19" + }, + "nodeType": "YulIf", + "src": "70679:2:19" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70662:5:19", + "type": "" + } + ], + "src": "70626:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70796:78:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70852:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70861:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70864:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70854:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70854:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70854:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70819:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70843:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "70826:16:19" + }, + "nodeType": "YulFunctionCall", + "src": "70826:23:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70816:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70816:34:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70809:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70809:42:19" + }, + "nodeType": "YulIf", + "src": "70806:2:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70789:5:19", + "type": "" + } + ], + "src": "70754:120:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "70923:79:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70980:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70989:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "70992:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "70982:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70982:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "70982:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70946:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "70971:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "70953:17:19" + }, + "nodeType": "YulFunctionCall", + "src": "70953:24:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "70943:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "70943:35:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "70936:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "70936:43:19" + }, + "nodeType": "YulIf", + "src": "70933:2:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "70916:5:19", + "type": "" + } + ], + "src": "70880:122:19" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "71049:77:19", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "71104:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "71113:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "71116:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "71106:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "71106:12:19" + }, + "nodeType": "YulExpressionStatement", + "src": "71106:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "71072:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "71095:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "71079:15:19" + }, + "nodeType": "YulFunctionCall", + "src": "71079:22:19" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "71069:2:19" + }, + "nodeType": "YulFunctionCall", + "src": "71069:33:19" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "71062:6:19" + }, + "nodeType": "YulFunctionCall", + "src": "71062:41:19" + }, + "nodeType": "YulIf", + "src": "71059:2:19" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "71042:5:19", + "type": "" + } + ], + "src": "71008:118:19" + } + ] + }, + "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) offset := add(offset, 0x20) dst := add(dst, 0x20) // might update offset and dst\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\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 abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let src := add(offset, 0x20)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\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_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n if slt(sub(dataEnd, headStart), 320) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 192\n value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value7 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value8 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 288))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value9 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint8t_uint256t_uint256t_uint256t_uint256t_string_memory_ptrt_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 64\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 96\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 128\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 160\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 192))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value6 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value7 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 256))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value8 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n let offset := 0\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n let offset := 32\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\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(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n let length := and(div(slotValue, 2), 0x7f)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, 0x20)\n }\n case 1 {\n // long byte array\n let length := div(slotValue, 2)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n\n mstore(add(pos, 0), \"ERC1155: transfer to non ERC1155\")\n\n mstore(add(pos, 32), \"Receiver implementer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 53)\n\n mstore(add(pos, 0), \"CLM8::issueOnBehalf: call must c\")\n\n mstore(add(pos, 32), \"ome from DAO or admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"EnumerableSet: index out of boun\")\n\n mstore(add(pos, 32), \"ds\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"ERC1155: ERC1155Receiver rejecte\")\n\n mstore(add(pos, 32), \"d tokens\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n\n mstore(add(pos, 0), \"AccessControl: sender must be an\")\n\n mstore(add(pos, 32), \" admin to grant\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"CLM8::onlyDealer: msg.sender not\")\n\n mstore(add(pos, 32), \" a dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n\n mstore(add(pos, 0), \"ERC1155: balance query for the z\")\n\n mstore(add(pos, 32), \"ero address\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n\n mstore(add(pos, 0), \"ERC165: invalid interface id\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n\n mstore(add(pos, 0), \"CLM8::retire: tokenId does not e\")\n\n mstore(add(pos, 32), \"xist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n\n mstore(add(pos, 0), \"SafeMath: addition overflow\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n\n mstore(add(pos, 0), \"CLM8::mint: tokenId does not exi\")\n\n mstore(add(pos, 32), \"st\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"CLM8::unregisterDealer: tokenTyp\")\n\n mstore(add(pos, 32), \"eId does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: caller is not owner nor\")\n\n mstore(add(pos, 32), \" approved\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 70)\n\n mstore(add(pos, 0), \"CLM8::unregisterConsumer(limited\")\n\n mstore(add(pos, 32), \"): only admin can unregister con\")\n\n mstore(add(pos, 64), \"sumers\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n\n mstore(add(pos, 0), \"CLM8::getTokenType: tokenId does\")\n\n mstore(add(pos, 32), \" not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"CLM8::onlyAdmin: msg.sender not \")\n\n mstore(add(pos, 32), \"the admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered offset dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"AccessControl: sender must be an\")\n\n mstore(add(pos, 32), \" admin to revoke\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 52)\n\n mstore(add(pos, 0), \"CLM8::retire: not enough availab\")\n\n mstore(add(pos, 32), \"le balance to retire\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): proposer \")\n\n mstore(add(pos, 32), \"not a registered dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n\n mstore(add(pos, 0), \"ERC1155: transfer to the zero ad\")\n\n mstore(add(pos, 32), \"dress\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"ERC1155: transfer caller is not \")\n\n mstore(add(pos, 32), \"owner nor approved\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n\n mstore(add(pos, 0), \"Initializable: contract is alrea\")\n\n mstore(add(pos, 32), \"dy initialized\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n\n mstore(add(pos, 0), \"ERC1155: burn from the zero addr\")\n\n mstore(add(pos, 32), \"ess\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 54)\n\n mstore(add(pos, 0), \"CLM8::transfer: sender and recei\")\n\n mstore(add(pos, 32), \"ver cannot be the same\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 50)\n\n mstore(add(pos, 0), \"CLM8::mint: cannot mint new toke\")\n\n mstore(add(pos, 32), \"ns in limited mode\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"CLM8::registerDealer: tokenTypeI\")\n\n mstore(add(pos, 32), \"d does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n\n mstore(add(pos, 0), \"CLM8::transfer: tokenId does not\")\n\n mstore(add(pos, 32), \" exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n\n mstore(add(pos, 0), \"CLM8::registerConsumer(limited):\")\n\n mstore(add(pos, 32), \" only admin can register consume\")\n\n mstore(add(pos, 64), \"rs\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered emissions auditor\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): msg.sende\")\n\n mstore(add(pos, 32), \"r not timelock\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n\n mstore(add(pos, 0), \"CLM8::getTokenRetiredAmount: tok\")\n\n mstore(add(pos, 32), \"enId does not exist\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 88)\n\n mstore(add(pos, 0), \"CLM8::_beforeTokenTransfer(limit\")\n\n mstore(add(pos, 32), \"ed): only emissions auditors can\")\n\n mstore(add(pos, 64), \" issue audited emissions\")\n\n end := add(pos, 96)\n }\n\n function abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 64)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): issuer no\")\n\n mstore(add(pos, 32), \"t a registered emissions auditor\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n\n mstore(add(pos, 0), \"CLM8::_issue(limited): issuee no\")\n\n mstore(add(pos, 32), \"t admin\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: setting approval status\")\n\n mstore(add(pos, 32), \" for self\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n\n mstore(add(pos, 0), \"ERC1155: accounts and ids length\")\n\n mstore(add(pos, 32), \" mismatch\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n\n mstore(add(pos, 0), \"CLM8::_issue: issuer not a regis\")\n\n mstore(add(pos, 32), \"tered REC dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n\n mstore(add(pos, 0), \"ERC1155: ids and amounts length \")\n\n mstore(add(pos, 32), \"mismatch\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n\n mstore(add(pos, 0), \"ERC1155: mint to the zero addres\")\n\n mstore(add(pos, 32), \"s\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 61)\n\n mstore(add(pos, 0), \"CLM8::consumerOrDealer: msg.send\")\n\n mstore(add(pos, 32), \"er not a consumer or a dealer\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n\n mstore(add(pos, 0), \"CLM8::_issue: tokenTypeId is inv\")\n\n mstore(add(pos, 32), \"alid\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n\n mstore(add(pos, 0), \"AccessControl: can only renounce\")\n\n mstore(add(pos, 32), \" roles for self\")\n\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 75)\n\n mstore(add(pos, 0), \"CLM8::_beforeTokenTransfer(limit\")\n\n mstore(add(pos, 32), \"ed): only admin and DAO can tran\")\n\n mstore(add(pos, 64), \"sfer tokens\")\n\n end := add(pos, 96)\n }\n\n // struct NetEmissionsTokenNetworkV2.CarbonTokenDetails -> struct NetEmissionsTokenNetworkV2.CarbonTokenDetails\n function abi_encode_t_struct$_CarbonTokenDetails_$7667_memory_ptr_to_t_struct$_CarbonTokenDetails_$7667_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x0160)\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // tokenTypeId\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint8_to_t_uint8(memberValue0, add(pos, 0x20))\n }\n\n {\n // issuer\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // issuee\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x60))\n }\n\n {\n // fromDate\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n }\n\n {\n // thruDate\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xa0))\n }\n\n {\n // dateCreated\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xc0))\n }\n\n {\n // automaticRetireDate\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xe0))\n }\n\n {\n // metadata\n\n let memberValue0 := mload(add(value, 0x0100))\n\n mstore(add(pos, 0x0100), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // manifest\n\n let memberValue0 := mload(add(value, 0x0120))\n\n mstore(add(pos, 0x0120), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // description\n\n let memberValue0 := mload(add(value, 0x0140))\n\n mstore(add(pos, 0x0140), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\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_t_uint8_to_t_uint8(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_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 mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_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_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool_t_bool_t_bool_t_bool_t_bool__to_t_bool_t_bool_t_bool_t_bool_t_bool__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_bool_to_t_bool_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_struct$_CarbonTokenDetails_$7667_memory_ptr__to_t_struct$_CarbonTokenDetails_$7667_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$_CarbonTokenDetails_$7667_memory_ptr_to_t_struct$_CarbonTokenDetails_$7667_memory_ptr_fromStack(value0, tail)\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 abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_storage_t_string_storage_t_string_storage__to_t_uint256_t_uint256_t_uint256_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 352)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\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_uint8_to_t_uint8_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n mstore(add(headStart, 256), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value8, tail)\n\n mstore(add(headStart, 288), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value9, tail)\n\n mstore(add(headStart, 320), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value10, tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\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() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\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 array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(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 if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error() {\n invalid()\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function shift_right_224_unsigned(value) -> newValue {\n newValue :=\n\n shr(224, value)\n\n }\n\n function try_decode_error_message() -> ret {\n if lt(returndatasize(), 0x44) { leave }\n\n returndatacopy(0, 0, 4)\n let sig := shift_right_224_unsigned(mload(0))\n if iszero(eq(sig, 0x08c379a0)) { leave }\n\n let data := mload(64)\n returndatacopy(data, 4, sub(returndatasize(), 4))\n\n let offset := mload(data)\n if or(\n gt(offset, 0xffffffffffffffff),\n gt(add(offset, 0x24), returndatasize())\n ) {\n leave\n }\n\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, 0xffffffffffffffff) { leave }\n\n let end := add(add(msg, 0x20), length)\n if gt(end, add(data, returndatasize())) { leave }\n\n mstore(64, add(add(msg, 0x20), round_up_to_mul_of_32(length)))\n ret := msg\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\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 validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\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 validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212208d412e79c4fc4b4c735ea4b2877a761c47805708ea7a440e845504b2d67edc4164736f6c63430007030033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x273 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F157C9B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xCE6CCFAF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xF000BE98 EQ PUSH2 0x823 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x83F JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x85B JUMPI DUP1 PUSH4 0xFCBA7948 EQ PUSH2 0x879 JUMPI DUP1 PUSH4 0xFD0C4A9A EQ PUSH2 0x897 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xCE6CCFAF EQ PUSH2 0x74D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xDBA851B0 EQ PUSH2 0x79D JUMPI DUP1 PUSH4 0xDDC3E6EB EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xE2E564F2 EQ PUSH2 0x7D7 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x67B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x699 JUMPI DUP1 PUSH4 0xBDACB303 EQ PUSH2 0x6B5 JUMPI DUP1 PUSH4 0xC1E03728 EQ PUSH2 0x6D1 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x701 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x71D JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x7F157C9B EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5EB JUMPI DUP1 PUSH4 0x92089C46 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0xA0D975A7 EQ PUSH2 0x64B JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x53DBE982 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x53DBE982 EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0x5DDB368F EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x69F7EF44 EQ PUSH2 0x4EE JUMPI DUP1 PUSH4 0x76AED2E1 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x76CE4755 EQ PUSH2 0x54E JUMPI DUP1 PUSH4 0x78E5C592 EQ PUSH2 0x56C JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x31AA4B20 EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x33781A0E EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x44B22FDD EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x484 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH4 0x18A50D7E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x18A50D7E EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x1EF68EF7 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x293A7F2E EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x3C8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3E4 JUMPI PUSH2 0x273 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x95BCDB6 EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x324 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x5772 JUMP JUMPDEST PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x54A3 JUMP JUMPDEST PUSH2 0xC9B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0xD9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x373 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x396 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x391 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A3 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C1 SWAP2 SWAP1 PUSH2 0x5816 JUMP JUMPDEST PUSH2 0xE07 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x51BA JUMP JUMPDEST PUSH2 0x10C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1486 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x14FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x436 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x431 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x466 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x16D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x482 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47D SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1757 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x563C JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x6E51 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1A02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D8 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x508 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x503 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x538 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x533 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x545 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x556 PUSH2 0x1DD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x574 PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1E1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B2 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5D0 SWAP2 SWAP1 PUSH2 0x5736 JUMP JUMPDEST PUSH2 0x1EC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x605 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x600 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x612 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x635 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x630 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x1F2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x665 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x660 SWAP2 SWAP1 PUSH2 0x5467 JUMP JUMPDEST PUSH2 0x1F6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x672 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x683 PUSH2 0x2016 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6B3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6AE SWAP2 SWAP1 PUSH2 0x542B JUMP JUMPDEST PUSH2 0x201D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x219E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6EB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E6 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x222E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F8 SWAP2 SWAP1 PUSH2 0x74D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x71B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x716 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x253D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x737 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x732 SWAP2 SWAP1 PUSH2 0x56D1 JUMP JUMPDEST PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x744 SWAP2 SWAP1 PUSH2 0x74F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x767 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x5155 JUMP JUMPDEST PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x778 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x79B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x796 SWAP2 SWAP1 PUSH2 0x56FA JUMP JUMPDEST PUSH2 0x28EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7A5 PUSH2 0x2963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B2 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D0 SWAP2 SWAP1 PUSH2 0x56A8 JUMP JUMPDEST PUSH2 0x2976 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x54F2 JUMP JUMPDEST PUSH2 0x29DF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81A SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x83D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x838 SWAP2 SWAP1 PUSH2 0x5308 JUMP JUMPDEST PUSH2 0x2C28 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x859 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x854 SWAP2 SWAP1 PUSH2 0x5279 JUMP JUMPDEST PUSH2 0x2CEA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x863 PUSH2 0x302D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x6D4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x881 PUSH2 0x3053 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x6F18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0x552E JUMP JUMPDEST PUSH2 0x3077 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x924 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x91B SWAP1 PUSH2 0x7015 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA11 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA3F PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA6D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA9B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xAA6 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xAAE JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xAB6 JUMPI POP DUP1 JUMPDEST PUSH2 0xAF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAEC SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAFE DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB34 SWAP1 PUSH2 0x72B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xBAC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP1 PUSH2 0x7255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEE CALLER DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2CEA JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0xC8F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC64 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8F 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 0xC72 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA8 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCDE SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCF0 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xD2F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD26 SWAP1 PUSH2 0x7095 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD7F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD76 SWAP1 PUSH2 0x7275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP2 JUMP JUMPDEST PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x97 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE33 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE61 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xE8F PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEBD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xEC8 JUMPI POP DUP3 JUMPDEST DUP1 PUSH2 0xED0 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0xED8 JUMPI POP DUP1 JUMPDEST PUSH2 0xF17 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0E SWAP1 PUSH2 0x7455 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP7 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF56 SWAP1 PUSH2 0x7055 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF69 CALLER DUP8 PUSH2 0x8B3 JUMP JUMPDEST DUP6 GT ISZERO PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA2 SWAP1 PUSH2 0x7195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFB6 CALLER DUP8 DUP8 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x1019 DUP6 PUSH1 0xCD PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8F1B5EBB586D3D169E4ED07DB9CD10CE0DD30C7B656171310EAE7517C0B53CF9 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x7415 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1179 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1170 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1181 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x11C7 JUMPI POP PUSH2 0x11C6 DUP6 PUSH2 0x11C1 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x1206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FD SWAP1 PUSH2 0x71F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x1220 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x13F1 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x123A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1252 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x12D9 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP14 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x1390 DUP2 PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1223 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1468 SWAP3 SWAP2 SWAP1 PUSH2 0x6E73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x147E DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x380B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14AD PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x14A8 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x14EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14E3 SWAP1 PUSH2 0x6FD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14F6 DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1507 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x153D SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x154F DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x158E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1585 SWAP1 PUSH2 0x7295 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x15C9 JUMPI PUSH2 0x15C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x1604 JUMPI PUSH2 0x15FF PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x1486 JUMP JUMPDEST PUSH2 0x162F JUMP JUMPDEST PUSH2 0x162E PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x1486 JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x165A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x1486 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA8377DEEE15954185683D55EFFD369508B4935978C8CB2BAB790BF04C5701814 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP4 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16DC PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1740 SWAP1 PUSH2 0x7495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1753 DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1783 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17B1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17DF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x17EA JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x17F2 JUMPI POP DUP1 JUMPDEST PUSH2 0x1831 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1893 JUMPI PUSH2 0x1853 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1892 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1889 SWAP1 PUSH2 0x72D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x18BD PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x1486 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x69A0ADEE259D26FE61F4776F7BEA7F3A9737C7321256821B985F988545EFD319 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x194C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1943 SWAP1 PUSH2 0x73D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1995 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x19F7 JUMPI PUSH2 0x19D4 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19B3 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x19C7 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8B3 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19E0 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x199B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2E PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A5C PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A8A PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1A95 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1A9D JUMPI POP DUP1 JUMPDEST PUSH2 0x1ADC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AD3 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B3E JUMPI PUSH2 0x1AFE PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x1B3D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B34 SWAP1 PUSH2 0x70F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1B68 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP6 PUSH2 0x28EF JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3A38088DA75EE2D80F6C753F55F8FD17602AE17D8BD0EF44D5E1F28AB5AF11F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BBD PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BEF PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP5 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C1D PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP6 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4B PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP7 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x1C56 JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x1C5E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1C77 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C87 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1CC6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBD SWAP1 PUSH2 0x7115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D38 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x52656E657761626C6520456E6572677920436572746966696361746500000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436172626F6E20456D697373696F6E73204F6666736574000000000000000000 DUP2 MSTORE POP SWAP2 POP POP PUSH2 0x1DCD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4175646974656420456D697373696F6E73000000000000000000000000000000 DUP2 MSTORE POP SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP2 JUMP JUMPDEST PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1E29 DUP6 DUP6 PUSH2 0x8B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA0D975A7 DUP8 DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E68 SWAP3 SWAP2 SWAP1 PUSH2 0x6E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EB8 SWAP2 SWAP1 PUSH2 0x57ED JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF3 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B41 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F25 DUP3 PUSH1 0x97 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3B5B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F78 DUP3 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1FB7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FAE SWAP1 PUSH2 0x7335 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xCD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x203C PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2093 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208A SWAP1 PUSH2 0x73B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x66 PUSH1 0x0 PUSH2 0x20A0 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x214D PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2192 SWAP2 SWAP1 PUSH2 0x6EAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x21AB PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21E1 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x2236 PUSH2 0x4DD9 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x23E9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x23BE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x23E9 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 0x23CC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x248B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2460 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248B 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 0x246E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x252D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2502 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x252D 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 0x2510 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x255C JUMPI POP PUSH2 0x255B PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2572 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x25B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25A8 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x2601 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x2619 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3B9C JUMP JUMPDEST PUSH2 0x2663 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 PUSH2 0x3C9E JUMP JUMPDEST PUSH2 0x2670 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x269A PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26C4 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x26EE PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x3D02 JUMP JUMPDEST PUSH2 0x2718 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x3D02 JUMP JUMPDEST DUP2 PUSH1 0xC9 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x27D7 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27FB PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x3D10 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2818 PUSH1 0x0 DUP1 SHL DUP9 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2846 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP10 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2874 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28A2 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP12 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x28D0 PUSH32 0x5E1AA547D3DADE8C68B013A47AD41C2BCC9B9E4B0765B0FB616780E15786E76A DUP13 PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP5 DUP5 DUP5 DUP5 DUP5 SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP SWAP10 POP POP POP POP POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH2 0x2916 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2911 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2955 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x294C SWAP1 PUSH2 0x7175 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x295F DUP3 DUP3 PUSH2 0x3A9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x2983 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x29C2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29B9 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x29EC PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x2A2B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A22 SWAP1 PUSH2 0x7135 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A34 DUP2 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x2A73 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6A SWAP1 PUSH2 0x70B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AAE JUMPI PUSH2 0x2AA9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B15 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0xFF AND EQ ISZERO PUSH2 0x2AE9 JUMPI PUSH2 0x2AE4 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0x2B14 JUMP JUMPDEST PUSH2 0x2B13 PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST JUMPDEST PUSH2 0x2B1E DUP3 PUSH2 0x1BC2 JUMP JUMPDEST PUSH2 0x2B4D JUMPI PUSH2 0x2B4C PUSH32 0xF8890EEDD7900AD88DA6192FD03DBB69DBEEE963B1A0ED738ABE49AB3331AAF3 DUP4 PUSH2 0x28EF JUMP JUMPDEST JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x98552DED770F1D05A505572F3387C108DBC6B566EA3D49F83CFF3D1F1C72A042 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x66 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2C8D JUMPI POP PUSH2 0x2C8C PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x2CCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CC3 SWAP1 PUSH2 0x6F75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CDE DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D51 SWAP1 PUSH2 0x71D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D62 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2DA8 JUMPI POP PUSH2 0x2DA7 DUP6 PUSH2 0x2DA2 PUSH2 0x35D2 JUMP JUMPDEST PUSH2 0x2B94 JUMP JUMPDEST JUMPDEST PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DDE SWAP1 PUSH2 0x70D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2DF1 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2E11 DUP2 DUP8 DUP8 PUSH2 0x2E02 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x2E0B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x2E8E DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79CD PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x2F45 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x300F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3025 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A3 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30D1 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x30FF PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C CALLER PUSH2 0x1EFB JUMP JUMPDEST SWAP1 POP DUP3 DUP1 PUSH2 0x310A JUMPI POP DUP2 JUMPDEST DUP1 PUSH2 0x3112 JUMPI POP DUP1 JUMPDEST PUSH2 0x3151 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3148 SWAP1 PUSH2 0x6FF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3163 DUP13 CALLER DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH2 0x3D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x317E PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST LT PUSH2 0x318C JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3206 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31FD SWAP1 PUSH2 0x7435 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3231 DUP2 PUSH1 0x0 DUP8 PUSH2 0x3222 DUP9 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x322B DUP9 PUSH2 0x452D JUMP JUMPDEST DUP8 PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x3294 DUP4 PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x335F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x3376 DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x459D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x33ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33E4 SWAP1 PUSH2 0x7235 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x33F7 PUSH2 0x35D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3427 DUP2 DUP6 PUSH1 0x0 PUSH2 0x3409 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH2 0x3412 DUP8 PUSH2 0x452D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x35DA JUMP JUMPDEST PUSH2 0x34A4 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79A9 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x65 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37B6 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x65 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x356F SWAP3 SWAP2 SWAP1 PUSH2 0x7512 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x35C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35BF SWAP1 PUSH2 0x7075 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x35E8 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x476D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x37AD JUMPI PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x3606 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x379E JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x366E JUMPI POP PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0xFF AND EQ PUSH2 0x3733 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x36EF JUMPI POP PUSH2 0x36EE PUSH1 0x0 DUP1 SHL DUP10 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x372E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3725 SWAP1 PUSH2 0x74B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x379D JUMP JUMPDEST PUSH2 0x375D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP10 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x379C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3793 SWAP1 PUSH2 0x7355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x35EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0x37FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37F5 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x382A DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x39D3 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3870 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x388A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x38BB JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38B8 SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x394A JUMPI PUSH2 0x38C7 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x38D2 JUMPI POP PUSH2 0x390F JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3906 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3941 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x39D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39C8 SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3A03 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x4788 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3A6B JUMPI PUSH2 0x3A10 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x3A87 JUMPI POP PUSH1 0x3 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO PUSH2 0x3A95 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3A9A JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AC7 DUP2 PUSH1 0x97 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH2 0x47B8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO PUSH2 0x3B2F JUMPI PUSH2 0x3AD4 PUSH2 0x35D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B50 DUP4 PUSH1 0x0 ADD DUP4 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x0 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B83 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4855 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B96 ADDRESS PUSH2 0x4775 JUMP JUMPDEST ISZERO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x3BBB JUMPI POP PUSH2 0x3BBA PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x3BD1 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x3C10 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C07 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x3C60 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x3C68 PUSH2 0x4878 JUMP JUMPDEST PUSH2 0x3C70 PUSH2 0x4960 JUMP JUMPDEST PUSH2 0x3C79 DUP3 PUSH2 0x4A58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C9A JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD DUP4 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x97 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x3D0C DUP3 DUP3 PUSH2 0x39DB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1E DUP3 PUSH1 0x0 ADD PUSH2 0x4B6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D2E DUP9 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x3D6D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D64 SWAP1 PUSH2 0x7475 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3F93 JUMPI PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ DUP1 PUSH2 0x3D97 JUMPI POP PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x3F17 JUMPI PUSH1 0xCA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E23 SWAP1 PUSH2 0x7315 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3E39 PUSH1 0x0 DUP1 SHL DUP12 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3E78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E6F SWAP1 PUSH2 0x7395 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3EA2 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST DUP1 PUSH2 0x3ED3 JUMPI POP PUSH2 0x3ED2 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST JUMPDEST PUSH2 0x3F12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F09 SWAP1 PUSH2 0x71B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F8E JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x3F8D JUMPI PUSH2 0x3F4D PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x3F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F83 SWAP1 PUSH2 0x7375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST PUSH2 0x4100 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x400D JUMPI PUSH2 0x3FC9 PUSH32 0x2AB9F1DA92E74AAA01EB75A871557505B11DD8D36832A34BB21BBEE88B08D860 DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4008 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FFF SWAP1 PUSH2 0x73F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FF JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x4087 JUMPI PUSH2 0x4043 PUSH32 0xEDE6574DEBA8F02ADA7888448A497B08844D62E044ED533343A673BE3FFCDE5F DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x4082 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4079 SWAP1 PUSH2 0x7155 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x3 DUP9 PUSH1 0xFF AND EQ ISZERO PUSH2 0x40FD JUMPI PUSH2 0x40BD PUSH32 0xE97DAD3DBE5042E7384B1572CF966A15E089576A62B5126C5EF1D184AB18B12C DUP11 PUSH2 0x1EFB JUMP JUMPDEST PUSH2 0x40FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40F3 SWAP1 PUSH2 0x72F5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST PUSH2 0x410A PUSH1 0xCB PUSH2 0x4B7B JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCC PUSH1 0x0 PUSH2 0x411A PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH2 0x4134 PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP6 DUP2 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP5 DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP TIMESTAMP DUP2 PUSH1 0x5 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x7 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x421B SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP3 DUP2 PUSH1 0x8 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4234 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP DUP2 DUP2 PUSH1 0x9 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x424D SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP PUSH2 0x4272 DUP12 PUSH2 0x425C PUSH1 0xCB PUSH2 0x3B33 JUMP JUMPDEST DUP11 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x3196 JUMP JUMPDEST PUSH1 0x3 DUP10 PUSH1 0xFF AND EQ ISZERO PUSH2 0x43B9 JUMPI PUSH2 0x42B1 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x337D JUMP JUMPDEST PUSH2 0x433C DUP9 PUSH1 0xCD PUSH1 0x0 DUP5 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x357D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xCD PUSH1 0x0 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x99CC3EEB446560C9A2D2483BC5160735EC0FB1851AEA3BDE32E7A56C30C11DA6 DUP11 PUSH1 0xCD PUSH1 0x0 DUP7 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP6 PUSH1 0x0 ADD SLOAD DUP7 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP8 PUSH1 0x3 ADD SLOAD DUP9 PUSH1 0x4 ADD SLOAD DUP10 PUSH1 0x6 ADD SLOAD DUP11 PUSH1 0x5 ADD SLOAD DUP12 PUSH1 0x7 ADD DUP13 PUSH1 0x8 ADD DUP14 PUSH1 0x9 ADD PUSH1 0x40 MLOAD PUSH2 0x4518 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x753B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x4548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4577 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x4588 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45BC DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4775 JUMP JUMPDEST ISZERO PUSH2 0x4765 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4602 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6DCE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x464D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x464A SWAP2 SWAP1 PUSH2 0x579B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x46DC JUMPI PUSH2 0x4659 PUSH2 0x7868 JUMP JUMPDEST DUP1 PUSH2 0x4664 JUMPI POP PUSH2 0x46A1 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4698 SWAP2 SWAP1 PUSH2 0x6F33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46D3 SWAP1 PUSH2 0x6F55 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4763 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x475A SWAP1 PUSH2 0x6FB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47B0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4B91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47E0 DUP4 PUSH1 0x0 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SHL PUSH2 0x4C01 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP GT PUSH2 0x4833 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x482A SWAP1 PUSH2 0x6F95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4842 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4897 JUMPI POP PUSH2 0x4896 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x48AD JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x48EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48E3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x493C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 ISZERO PUSH2 0x495D JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x497F JUMPI POP PUSH2 0x497E PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4995 JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x49D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49CB SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4A24 JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4A34 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A55 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x4A77 JUMPI POP PUSH2 0x4A76 PUSH2 0x3B8B JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x4A8D JUMPI POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST PUSH2 0x4ACC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4AC3 SWAP1 PUSH2 0x7215 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP DUP1 ISZERO PUSH2 0x4B1C JUMPI PUSH1 0x1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x4B25 DUP3 PUSH2 0x4DBF JUMP JUMPDEST PUSH2 0x4B35 PUSH4 0xD9B67A26 PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST PUSH2 0x4B45 PUSH4 0xE89341C PUSH1 0xE0 SHL PUSH2 0x4CE9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B66 JUMPI PUSH1 0x0 DUP1 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9D DUP4 DUP4 PUSH2 0x4855 JUMP JUMPDEST PUSH2 0x4BF6 JUMPI DUP3 PUSH1 0x0 ADD DUP3 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 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE DUP3 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x1 SWAP1 POP PUSH2 0x4BFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x4CDD JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP7 PUSH1 0x0 ADD DUP1 SLOAD SWAP1 POP SUB SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4C4C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4C69 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP4 ADD DUP8 PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP7 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH2 0x4CA1 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x4CE3 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x4D52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D49 SWAP1 PUSH2 0x7035 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x33 PUSH1 0x0 DUP4 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x67 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4DD5 SWAP3 SWAP2 SWAP1 PUSH2 0x4E62 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x4EA3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4ED1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4ED1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4ED0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4EB5 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4EDE SWAP2 SWAP1 PUSH2 0x4EE2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4EFB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x4EE3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4F0E DUP2 PUSH2 0x791E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4F38 PUSH2 0x4F33 DUP3 PUSH2 0x762C JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4F5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F8D JUMPI DUP2 PUSH2 0x4F73 DUP9 DUP3 PUSH2 0x4EFF JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F60 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4FBB PUSH2 0x4FB6 DUP3 PUSH2 0x7658 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x4FE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5010 JUMPI DUP2 PUSH2 0x4FF6 DUP9 DUP3 PUSH2 0x5116 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4FE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5029 DUP2 PUSH2 0x7935 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x503E DUP2 PUSH2 0x794C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5053 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5068 DUP2 PUSH2 0x7963 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x507F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5092 PUSH2 0x508D DUP3 PUSH2 0x7684 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x50AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50B9 DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x50E6 PUSH2 0x50E1 DUP3 PUSH2 0x76B4 JUMP JUMPDEST PUSH2 0x75FB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x5102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x510D DUP4 DUP3 DUP5 PUSH2 0x7806 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5125 DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x513A DUP2 PUSH2 0x797A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x514F DUP2 PUSH2 0x7991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5175 DUP5 DUP3 DUP6 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x519F DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x51B0 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x51D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51E0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x51F1 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x520E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x521A DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5243 DUP9 DUP3 DUP10 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x526C DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x5291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x529F DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x52B0 DUP9 DUP3 DUP10 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x52C1 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x52D2 DUP9 DUP3 DUP10 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52FB DUP9 DUP3 DUP10 ADD PUSH2 0x506E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5336 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x5347 DUP14 DUP3 DUP15 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x5358 DUP14 DUP3 DUP15 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x5369 DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x537A DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x538B DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x539C DUP14 DUP3 DUP15 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53C5 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53EF DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 DUP12 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5419 DUP14 DUP3 DUP15 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x543E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x544C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x545D DUP6 DUP3 DUP7 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x547A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5488 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5499 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x54B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x54C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x54D7 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x54E8 DUP7 DUP3 DUP8 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5513 DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5524 DUP6 DUP3 DUP7 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x554D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x555B DUP13 DUP3 DUP14 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x556C DUP13 DUP3 DUP14 ADD PUSH2 0x5140 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x557D DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x558E DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x559F DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x55B0 DUP13 DUP3 DUP14 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55D9 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5602 DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5620 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x562C DUP13 DUP3 DUP14 ADD PUSH2 0x50C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x564F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5675 DUP6 DUP3 DUP7 ADD PUSH2 0x4F14 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x569E DUP6 DUP3 DUP7 ADD PUSH2 0x4F97 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56C8 DUP5 DUP3 DUP6 ADD PUSH2 0x501A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x56F1 DUP5 DUP3 DUP6 ADD PUSH2 0x502F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x570D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x571B DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x572C DUP6 DUP3 DUP7 ADD PUSH2 0x4EFF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5757 DUP6 DUP3 DUP7 ADD PUSH2 0x502F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5768 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5792 DUP5 DUP3 DUP6 ADD PUSH2 0x5044 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57BB DUP5 DUP3 DUP6 ADD PUSH2 0x5059 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x57E4 DUP5 DUP3 DUP6 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x580D DUP5 DUP3 DUP6 ADD PUSH2 0x512B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5829 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5837 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5848 DUP6 DUP3 DUP7 ADD PUSH2 0x5116 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585E DUP4 DUP4 PUSH2 0x6D0F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5873 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5882 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5893 DUP3 PUSH2 0x7709 JUMP JUMPDEST PUSH2 0x589D DUP2 DUP6 PUSH2 0x7737 JUMP JUMPDEST SWAP4 POP PUSH2 0x58A8 DUP4 PUSH2 0x76E4 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x58D9 JUMPI DUP2 MLOAD PUSH2 0x58C0 DUP9 DUP3 PUSH2 0x5852 JUMP JUMPDEST SWAP8 POP PUSH2 0x58CB DUP4 PUSH2 0x772A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x58AC JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x58EF DUP2 PUSH2 0x778D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x58FE DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x590F DUP3 PUSH2 0x7714 JUMP JUMPDEST PUSH2 0x5919 DUP2 DUP6 PUSH2 0x7748 JUMP JUMPDEST SWAP4 POP PUSH2 0x5929 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x5932 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5948 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x5952 DUP2 DUP6 PUSH2 0x7759 JUMP JUMPDEST SWAP4 POP PUSH2 0x5962 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x596B DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5981 DUP3 PUSH2 0x771F JUMP JUMPDEST PUSH2 0x598B DUP2 DUP6 PUSH2 0x776A JUMP JUMPDEST SWAP4 POP PUSH2 0x599B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7815 JUMP JUMPDEST PUSH2 0x59A4 DUP2 PUSH2 0x784A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x59CC JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x59F2 JUMPI PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x59DD DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP4 POP POP PUSH2 0x5A36 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x5A00 DUP2 DUP8 PUSH2 0x776A JUMP JUMPDEST SWAP6 POP PUSH2 0x5A0B DUP6 PUSH2 0x76F4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5A2D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5A0E JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A4B PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AB1 PUSH1 0x35 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A69737375654F6E426568616C663A2063616C6C206D7573742063 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F6D652066726F6D2044414F206F722061646D696E0000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B17 PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6473000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B7D PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BE3 PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F206772616E740000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C49 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C794465616C65723A206D73672E73656E646572206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061206465616C65720000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CAF PUSH1 0x2B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D15 PUSH1 0x1C DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x4552433136353A20696E76616C696420696E7465726661636520696400000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D55 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A20746F6B656E496420646F6573206E6F742065 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7869737400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DBB PUSH1 0x1B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DFB PUSH1 0x22 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A20746F6B656E496420646F6573206E6F7420657869 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7374000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5E61 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E72656769737465724465616C65723A20746F6B656E547970 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x65496420646F6573206E6F742065786973740000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC7 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2D PUSH1 0x46 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A756E7265676973746572436F6E73756D6572286C696D69746564 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x293A206F6E6C792061646D696E2063616E20756E726567697374657220636F6E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x73756D6572730000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FB9 PUSH1 0x2A DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E547970653A20746F6B656E496420646F6573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206E6F7420657869737400000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x601F PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6F6E6C7941646D696E3A206D73672E73656E646572206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7468652061646D696E0000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6085 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7465726564206F6666736574206465616C657200000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60EB PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2061646D696E20746F207265766F6B6500000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6151 PUSH1 0x34 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265746972653A206E6F7420656E6F75676820617661696C6162 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C652062616C616E636520746F20726574697265000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61B7 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A2070726F706F73657220 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E6F7420612072656769737465726564206465616C6572000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621D PUSH1 0x25 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6283 PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62E9 PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634F PUSH1 0x23 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206275726E2066726F6D20746865207A65726F2061646472 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x63B5 PUSH1 0x36 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A2073656E64657220616E64207265636569 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7665722063616E6E6F74206265207468652073616D6500000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641B PUSH1 0x32 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A6D696E743A2063616E6E6F74206D696E74206E657720746F6B65 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6E7320696E206C696D69746564206D6F64650000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6481 PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A72656769737465724465616C65723A20746F6B656E5479706549 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6420646F6573206E6F7420657869737400000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64E7 PUSH1 0x26 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7472616E736665723A20746F6B656E496420646F6573206E6F74 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x2065786973740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x654D PUSH1 0x42 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A7265676973746572436F6E73756D6572286C696D69746564293A PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206F6E6C792061646D696E2063616E20726567697374657220636F6E73756D65 PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7273000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x65D9 PUSH1 0x37 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420656D697373696F6E732061756469746F72000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x663F PUSH1 0x2E DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A206D73672E73656E6465 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x72206E6F742074696D656C6F636B000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A5 PUSH1 0x33 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A676574546F6B656E52657469726564416D6F756E743A20746F6B PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x656E496420646F6573206E6F7420657869737400000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x670B PUSH1 0x58 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C7920656D697373696F6E732061756469746F72732063616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x206973737565206175646974656420656D697373696F6E730000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6797 PUSH1 0x40 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756572206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061207265676973746572656420656D697373696F6E732061756469746F72 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67FD PUSH1 0x27 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6973737565286C696D69746564293A20697373756565206E6F PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x742061646D696E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6863 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68C9 PUSH1 0x29 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x692F PUSH1 0x30 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20697373756572206E6F742061207265676973 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746572656420524543206465616C657200000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6995 PUSH1 0x28 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69FB PUSH1 0x21 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A61 PUSH1 0x3D DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A636F6E73756D65724F724465616C65723A206D73672E73656E64 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6572206E6F74206120636F6E73756D6572206F722061206465616C6572000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AC7 PUSH1 0x24 DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F69737375653A20746F6B656E54797065496420697320696E76 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x616C696400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B2D PUSH1 0x2F DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B93 PUSH1 0x4B DUP4 PUSH2 0x776A JUMP JUMPDEST SWAP2 POP PUSH32 0x434C4D383A3A5F6265666F7265546F6B656E5472616E73666572286C696D6974 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6564293A206F6E6C792061646D696E20616E642044414F2063616E207472616E PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7366657220746F6B656E73000000000000000000000000000000000000000000 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x6C2B PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x6C3E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x6D2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x6C51 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x6C64 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x586A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x6C77 PUSH1 0x80 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x6C8A PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x6C9D PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x6CB0 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x6D0F JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x6CCA DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x120 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x120 DUP7 ADD MSTORE PUSH2 0x6CE6 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x140 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x6D02 DUP3 DUP3 PUSH2 0x593D JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6D18 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D27 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D36 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x6D45 DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D60 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6D7B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6D88 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6D9A DUP2 DUP7 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6DAE DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6DC2 DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6DE3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DF0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6DFD PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x6E0A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x6E1C DUP2 DUP5 PUSH2 0x5904 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6E3D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5879 JUMP JUMPDEST PUSH2 0x6E4A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E6B DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6E8D DUP2 DUP6 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6EA1 DUP2 DUP5 PUSH2 0x5888 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EBF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x6EDA PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EE7 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6EF4 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F01 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x58E6 JUMP JUMPDEST PUSH2 0x6F0E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x58E6 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6F2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x58F5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F4D DUP2 DUP5 PUSH2 0x5976 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F6E DUP2 PUSH2 0x5A3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6F8E DUP2 PUSH2 0x5AA4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FAE DUP2 PUSH2 0x5B0A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FCE DUP2 PUSH2 0x5B70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6FEE DUP2 PUSH2 0x5BD6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x700E DUP2 PUSH2 0x5C3C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x702E DUP2 PUSH2 0x5CA2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x704E DUP2 PUSH2 0x5D08 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x706E DUP2 PUSH2 0x5D48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x708E DUP2 PUSH2 0x5DAE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70AE DUP2 PUSH2 0x5DEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70CE DUP2 PUSH2 0x5E54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x70EE DUP2 PUSH2 0x5EBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x710E DUP2 PUSH2 0x5F20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x712E DUP2 PUSH2 0x5FAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x714E DUP2 PUSH2 0x6012 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x716E DUP2 PUSH2 0x6078 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x718E DUP2 PUSH2 0x60DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71AE DUP2 PUSH2 0x6144 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71CE DUP2 PUSH2 0x61AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x71EE DUP2 PUSH2 0x6210 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x720E DUP2 PUSH2 0x6276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x722E DUP2 PUSH2 0x62DC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x724E DUP2 PUSH2 0x6342 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x726E DUP2 PUSH2 0x63A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x728E DUP2 PUSH2 0x640E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72AE DUP2 PUSH2 0x6474 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72CE DUP2 PUSH2 0x64DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x72EE DUP2 PUSH2 0x6540 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x730E DUP2 PUSH2 0x65CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x732E DUP2 PUSH2 0x6632 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734E DUP2 PUSH2 0x6698 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x736E DUP2 PUSH2 0x66FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x738E DUP2 PUSH2 0x678A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73AE DUP2 PUSH2 0x67F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73CE DUP2 PUSH2 0x6856 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x73EE DUP2 PUSH2 0x68BC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x740E DUP2 PUSH2 0x6922 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x742E DUP2 PUSH2 0x6988 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x744E DUP2 PUSH2 0x69EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x746E DUP2 PUSH2 0x6A54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x748E DUP2 PUSH2 0x6ABA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74AE DUP2 PUSH2 0x6B20 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74CE DUP2 PUSH2 0x6B86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x74EF DUP2 DUP5 PUSH2 0x6C12 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x750C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7527 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7534 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x6D1E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP3 ADD SWAP1 POP PUSH2 0x7551 PUSH1 0x0 DUP4 ADD DUP15 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x755E PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x756B PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7578 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x6D3C JUMP JUMPDEST PUSH2 0x7585 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x7592 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x759F PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x6D1E JUMP JUMPDEST PUSH2 0x75AC PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x6D1E JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x75BF DUP2 DUP7 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x75D4 DUP2 DUP6 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x75E9 DUP2 DUP5 PUSH2 0x59AF JUMP JUMPDEST SWAP1 POP SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7622 JUMPI PUSH2 0x7621 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7647 JUMPI PUSH2 0x7646 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7673 JUMPI PUSH2 0x7672 PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x769F JUMPI PUSH2 0x769E PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x76CF JUMPI PUSH2 0x76CE PUSH2 0x7848 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7786 DUP3 PUSH2 0x77CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7833 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x7818 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x7842 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x7878 JUMPI PUSH2 0x791B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x7889 PUSH1 0x0 MLOAD PUSH2 0x785B JUMP JUMPDEST PUSH4 0x8C379A0 DUP2 EQ PUSH2 0x789A JUMPI POP PUSH2 0x791B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x78C6 JUMPI POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x78E5 JUMPI POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD RETURNDATASIZE DUP6 ADD DUP2 GT ISZERO PUSH2 0x7900 JUMPI POP POP POP POP POP POP PUSH2 0x791B JUMP JUMPDEST PUSH2 0x7909 DUP3 PUSH2 0x784A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD ADD PUSH1 0x40 MSTORE DUP3 SWAP7 POP POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7927 DUP2 PUSH2 0x777B JUMP JUMPDEST DUP2 EQ PUSH2 0x7932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x793E DUP2 PUSH2 0x778D JUMP JUMPDEST DUP2 EQ PUSH2 0x7949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7955 DUP2 PUSH2 0x7799 JUMP JUMPDEST DUP2 EQ PUSH2 0x7960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x796C DUP2 PUSH2 0x77A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x7977 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7983 DUP2 PUSH2 0x77EF JUMP JUMPDEST DUP2 EQ PUSH2 0x798E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x799A DUP2 PUSH2 0x77F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x79A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER BALANCE BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524331 BALANCE CALLDATALOAD CALLDATALOAD GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F72207472616E73666572 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 COINBASE 0x2E PUSH26 0xC4FC4B4C735EA4B2877A761C47805708EA7A440E845504B2D67E 0xDC COINBASE PUSH5 0x736F6C6343 STOP SMOD SUB STOP CALLER ", + "sourceMap": "602:21550:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3409:228:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1176:148:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20600:373:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3162:105:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13707:317:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1222:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1439:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4652:112:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15278:560:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5967:1184:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5014:223:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17750:650:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16472:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6188:205:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18549:330:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3794:530:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19868:345:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6140:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15963:381;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14156:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1541:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1672:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21095:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4335:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3320:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21477:149:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14757:308;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2097:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4392:306:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20979:110:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21754:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3831:593;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3625:125:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17058:510:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;5471:226:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;815:23:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22024:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19005:735;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4765:166:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9042:777:18;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4998:897:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;932:20:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1343:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8227:581;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3409:228:5;3495:7;3541:1;3522:21;;:7;:21;;;;3514:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3608:9;:13;3618:2;3608:13;;;;;;;;;;;:22;3622:7;3608:22;;;;;;;;;;;;;;;;3601:29;;3409:228;;;;:::o;1176:148:1:-;1261:4;1284:20;:33;1305:11;1284:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:40;;1176:148;;;:::o;20600:373:18:-;4468:15;4486:40;1726:32;4515:10;4486:7;:40::i;:::-;4468:58;;4536:16;4555:42;1399:34;4586:10;4555:7;:42::i;:::-;4536:61;;4607:16;4626:45;1498:37;4660:10;4626:7;:45::i;:::-;4607:64;;4681:15;4699:49;1604:41;4737:10;4699:7;:49::i;:::-;4681:67;;4780:10;:25;;;;4794:11;4780:25;:40;;;;4809:11;4780:40;:54;;;;4824:10;4780:54;4759:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;20736:20:::1;20748:7;20736:11;:20::i;:::-;20728:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20832:2;20818:16;;:10;:16;;;;20809:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20904:62;20927:10;20939:2;20943:7;20952:5;20904:62;;;;;;;;;;;;;;;;::::0;:22:::1;:62::i;:::-;20600:373:::0;;;;;;;:::o;3162:105:5:-;3224:13;3256:4;3249:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:105;;;:::o;13707:317:18:-;5405:39;2142:4:0;5413:18:18;;5433:10;5405:7;:39::i;:::-;5384:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;13825:20:::1;13837:7;13825:11;:20::i;:::-;13817:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13903:11;;;;;;;;;;;13902:12;13894:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13979:38;13991:2;13995:7;14004:8;13979:38;;;;;;;;;;;::::0;:11:::1;:38::i;:::-;13707:317:::0;;;:::o;1222:82::-;1274:30;1222:82;:::o;1439:96::-;1498:37;1439:96;:::o;4652:112:0:-;4709:7;4735:6;:12;4742:4;4735:12;;;;;;;;;;;:22;;;4728:29;;4652:112;;;:::o;15278:560:18:-;4468:15;4486:40;1726:32;4515:10;4486:7;:40::i;:::-;4468:58;;4536:16;4555:42;1399:34;4586:10;4555:7;:42::i;:::-;4536:61;;4607:16;4626:45;1498:37;4660:10;4626:7;:45::i;:::-;4607:64;;4681:15;4699:49;1604:41;4737:10;4699:7;:49::i;:::-;4681:67;;4780:10;:25;;;;4794:11;4780:25;:40;;;;4809:11;4780:40;:54;;;;4824:10;4780:54;4759:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;15393:20:::1;15405:7;15393:11;:20::i;:::-;15385:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15484:36;15500:10;15512:7;15484:15;:36::i;:::-;15474:6;:46;;15464:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15590:40;15602:10;15614:7;15623:6;15590:11;:40::i;:::-;15680:49;15722:6;15680:16;:25;15697:7;15680:25;;;;;;;;;;;:37;15706:10;15680:37;;;;;;;;;;;;;;;;:41;;:49;;;;:::i;:::-;15640:16;:25;15657:7;15640:25;;;;;;;;;;;:37;15666:10;15640:37;;;;;;;;;;;;;;;:89;;;;15770:10;15744:87;;;15794:7;15815:6;15744:87;;;;;;;:::i;:::-;;;;;;;;15278:560:::0;;;;;;:::o;5967:1184:5:-;6221:7;:14;6207:3;:10;:28;6199:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6312:1;6298:16;;:2;:16;;;;6290:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6395:12;:10;:12::i;:::-;6387:20;;:4;:20;;;:60;;;;6411:36;6428:4;6434:12;:10;:12::i;:::-;6411:16;:36::i;:::-;6387:60;6366:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;6534:16;6553:12;:10;:12::i;:::-;6534:31;;6576:60;6597:8;6607:4;6613:2;6617:3;6622:7;6631:4;6576:20;:60::i;:::-;6652:9;6647:349;6671:3;:10;6667:1;:14;6647:349;;;6702:10;6715:3;6719:1;6715:6;;;;;;;;;;;;;;6702:19;;6735:14;6752:7;6760:1;6752:10;;;;;;;;;;;;;;6735:27;;6799:123;6840:6;6799:123;;;;;;;;;;;;;;;;;:9;:13;6809:2;6799:13;;;;;;;;;;;:19;6813:4;6799:19;;;;;;;;;;;;;;;;:23;;:123;;;;;:::i;:::-;6777:9;:13;6787:2;6777:13;;;;;;;;;;;:19;6791:4;6777:19;;;;;;;;;;;;;;;:145;;;;6956:29;6978:6;6956:9;:13;6966:2;6956:13;;;;;;;;;;;:17;6970:2;6956:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6936:9;:13;6946:2;6936:13;;;;;;;;;;;:17;6950:2;6936:17;;;;;;;;;;;;;;;:49;;;;6647:349;;6683:3;;;;;6647:349;;;;7041:2;7011:47;;7035:4;7011:47;;7025:8;7011:47;;;7045:3;7050:7;7011:47;;;;;;;:::i;:::-;;;;;;;;7069:75;7105:8;7115:4;7121:2;7125:3;7130:7;7139:4;7069:35;:75::i;:::-;5967:1184;;;;;;:::o;5014:223:0:-;5097:45;5105:6;:12;5112:4;5105:12;;;;;;;;;;;:22;;;5129:12;:10;:12::i;:::-;5097:7;:45::i;:::-;5089:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;5205:25;5216:4;5222:7;5205:10;:25::i;:::-;5014:223;;:::o;17750:650:18:-;5405:39;2142:4:0;5413:18:18;;5433:10;5405:7;:39::i;:::-;5384:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;17867:31:::1;17886:11;17867:18;:31::i;:::-;17859:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;17980:1;17965:11;:16;;;17961:264;;;17997:41;1399:34;18030:7;17997:9;:41::i;:::-;17961:264;;;18074:1;18059:11;:16;;;18055:170;;;18091:44;1498:37;18127:7;18091:9;:44::i;:::-;18055:170;;;18166:48;1604:41;18206:7;18166:9;:48::i;:::-;18055:170;17961:264;18316:37;1274:30;18345:7;18316:9;:37::i;:::-;18385:7;18368:25;;;;;;;;;;;;17750:650:::0;;:::o;16472:135::-;16540:4;16563:37;1726:32;16592:7;16563;:37::i;:::-;16556:44;;16472:135;;;:::o;6188:205:0:-;6285:12;:10;:12::i;:::-;6274:23;;:7;:23;;;6266:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6360:26;6372:4;6378:7;6360:11;:26::i;:::-;6188:205;;:::o;18549:330:18:-;4978:16;4997:42;1399:34;5028:10;4997:7;:42::i;:::-;4978:61;;5049:16;5068:45;1498:37;5102:10;5068:7;:45::i;:::-;5049:64;;5123:15;5141:49;1604:41;5179:10;5141:7;:49::i;:::-;5123:67;;5222:11;:26;;;;5237:11;5222:26;:40;;;;5252:10;5222:40;5201:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;18626:11:::1;;;;;;;;;;;18622:160;;;18661:39;2142:4:0;18669:18:18::0;::::1;18689:10;18661:7;:39::i;:::-;18653:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;18622:160;18791:39;1726:32;18822:7;18791:9;:39::i;:::-;18864:7;18845:27;;;;;;;;;;;;18549:330:::0;;;;:::o;3794:530:5:-;3967:16;4026:3;:10;4007:8;:15;:29;3999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;4093:30;4140:8;:15;4126:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4093:63;;4172:9;4167:120;4191:8;:15;4187:1;:19;4167:120;;;4246:30;4256:8;4265:1;4256:11;;;;;;;;;;;;;;4269:3;4273:1;4269:6;;;;;;;;;;;;;;4246:9;:30::i;:::-;4227:13;4241:1;4227:16;;;;;;;;;;;;;:49;;;;;4208:3;;;;;4167:120;;;;4304:13;4297:20;;;3794:530;;;;:::o;19868:345:18:-;4978:16;4997:42;1399:34;5028:10;4997:7;:42::i;:::-;4978:61;;5049:16;5068:45;1498:37;5102:10;5068:7;:45::i;:::-;5049:64;;5123:15;5141:49;1604:41;5179:10;5141:7;:49::i;:::-;5123:67;;5222:11;:26;;;;5237:11;5222:26;:40;;;;5252:10;5222:40;5201:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;19947:11:::1;;;;;;;;;;;19943:164;;;19982:39;2142:4:0;19990:18:18::0;::::1;20010:10;19982:7;:39::i;:::-;19974:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;19943:164;20116:46;1726:32;20154:7;20116:16;:46::i;:::-;20198:7;20177:29;;;;;;;;;;;;19868:345:::0;;;;:::o;6140:114::-;6193:7;6219:28;:18;:26;:28::i;:::-;6212:35;;6140:114;:::o;15963:381::-;16029:4;16045:16;16064:39;1399:34;16095:7;16064;:39::i;:::-;16045:58;;16113:16;16132:42;1498:37;16166:7;16132;:42::i;:::-;16113:61;;16184:15;16202:46;1604:41;16240:7;16202;:46::i;:::-;16184:64;;16262:11;:26;;;;16277:11;16262:26;:40;;;;16292:10;16262:40;16258:57;;;16311:4;16304:11;;;;;;;16258:57;16332:5;16325:12;;;;;15963:381;;;;:::o;14156:492::-;14242:13;14279:20;14291:7;14279:11;:20::i;:::-;14271:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14356:32;14391:13;:22;14405:7;14391:22;;;;;;;;;;;14356:57;;14449:1;14428:5;:17;;;;;;;;;;;;:22;;;14424:181;;;14466:37;;;;;;;;;;;;;;;;;;;;;;14424:181;14545:1;14524:5;:17;;;;;;;;;;;;:22;;;14520:85;;;14562:32;;;;;;;;;;;;;;;;;;;;;;14520:85;14614:26;;;;;;;;;;;;;;;;;;;;14156:492;;;;:::o;1541:104::-;1604:41;1541:104;:::o;1672:86::-;1726:32;1672:86;:::o;21095:314::-;21208:7;21217;21240:17;21260:33;21276:7;21285;21260:15;:33::i;:::-;21240:53;;21303:15;21321:4;:26;;;21348:7;21357;21321:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21303:62;;21383:9;21394:7;21375:27;;;;;;21095:314;;;;;:::o;4335:136:0:-;4408:7;4434:30;4458:5;4434:6;:12;4441:4;4434:12;;;;;;;;;;;:20;;:23;;:30;;;;:::i;:::-;4427:37;;4335:136;;;;:::o;3320:137::-;3389:4;3412:38;3442:7;3412:6;:12;3419:4;3412:12;;;;;;;;;;;:20;;:29;;:38;;;;:::i;:::-;3405:45;;3320:137;;;;:::o;21477:149:18:-;21560:7;21590:13;:22;21604:7;21590:22;;;;;;;;;;;:29;;;;;;;;;;;;21583:36;;21477:149;;;:::o;14757:308::-;14867:7;14898:20;14910:7;14898:11;:20::i;:::-;14890:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;14984:14;15001:16;:25;15018:7;15001:25;;;;;;;;;;;:34;15027:7;15001:34;;;;;;;;;;;;;;;;14984:51;;15052:6;15045:13;;;14757:308;;;;:::o;2097:49:0:-;2142:4;2097:49;;;:::o;4392:306:5:-;4510:8;4494:24;;:12;:10;:12::i;:::-;:24;;;;4486:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;4620:8;4575:18;:32;4594:12;:10;:12::i;:::-;4575:32;;;;;;;;;;;;;;;:42;4608:8;4575:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;4672:8;4643:48;;4658:12;:10;:12::i;:::-;4643:48;;;4682:8;4643:48;;;;;;:::i;:::-;;;;;;;;4392:306;;:::o;20979:110:18:-;5405:39;2142:4:0;5413:18:18;;5433:10;5405:7;:39::i;:::-;5384:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;21073:9:::1;21062:8;;:20;;;;;;;;;;;;;;;;;;20979:110:::0;:::o;21754:166::-;21843:25;;:::i;:::-;21891:13;:22;21905:7;21891:22;;;;;;;;;;;21884:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21754:166;;;:::o;3831:593::-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;3897:18:18::1;;;;;;;;;;;;::::0;:14:::1;:18::i;:::-;3973:53;1726:32;1274:30;3973:13;:53::i;:::-;4061:38;2142:4:0;4072:18:18::0;::::1;4092:6;4061:10;:38::i;:::-;4109:37;1274:30;4139:6;4109:10;:37::i;:::-;4156:41;1399:34;4190:6;4156:10;:41::i;:::-;4207:44;1498:37;4244:6;4207:10;:44::i;:::-;4261:48;1604:41;4302:6;4261:10;:48::i;:::-;4327:6;4319:5;;:14;;;;;;;;;;;;;;;;;;4385:1;4366:8;;:21;;;;;;;;;;;;;;;;;;4412:5;4398:11;;:19;;;;;;;;;;;;;;;;;;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;3831:593:18;;:::o;3625:125:0:-;3688:7;3714:29;:6;:12;3721:4;3714:12;;;;;;;;;;;:20;;:27;:29::i;:::-;3707:36;;3625:125;;;:::o;17058:510:18:-;17116:4;17122;17128;17134;17140;17156:12;17171:36;2142:4:0;17179:18:18;;17199:7;17171;:36::i;:::-;17156:51;;17217:16;17236:39;1399:34;17267:7;17236;:39::i;:::-;17217:58;;17285:16;17304:42;1498:37;17338:7;17304;:42::i;:::-;17285:61;;17356:15;17374:46;1604:41;17412:7;17374;:46::i;:::-;17356:64;;17430:15;17448:37;1726:32;17477:7;17448;:37::i;:::-;17430:55;;17503:7;17512:11;17525;17538:10;17550;17495:66;;;;;;;;;;;;;;;17058:510;;;;;;;:::o;5471:226:0:-;5555:45;5563:6;:12;5570:4;5563:12;;;;;;;;;;;:22;;;5587:12;:10;:12::i;:::-;5555:7;:45::i;:::-;5547:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;5664:26;5676:4;5682:7;5664:11;:26::i;:::-;5471:226;;:::o;815:23:18:-;;;;;;;;;;;;;:::o;22024:125::-;5405:39;2142:4:0;5413:18:18;;5433:10;5405:7;:39::i;:::-;5384:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;22130:12:::1;22116:11;;:26;;;;;;;;;;;;;;;;;;22024:125:::0;:::o;19005:735::-;5405:39;2142:4:0;5413:18:18;;5433:10;5405:7;:39::i;:::-;5384:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;19124:31:::1;19143:11;19124:18;:31::i;:::-;19116:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;19239:1;19224:11;:16;;;19220:285;;;19256:48;1399:34;19296:7;19256:16;:48::i;:::-;19220:285;;;19340:1;19325:11;:16;;;19321:184;;;19357:51;1498:37;19400:7;19357:16;:51::i;:::-;19321:184;;;19439:55;1604:41;19486:7;19439:16;:55::i;:::-;19321:184;19220:285;19599:27;19618:7;19599:18;:27::i;:::-;19594:97;;19642:38;1274:30;19672:7;19642:10;:38::i;:::-;19594:97;19725:7;19706:27;;;;;;;;;;;;19005:735:::0;;:::o;4765:166:5:-;4864:4;4887:18;:27;4906:7;4887:27;;;;;;;;;;;;;;;:37;4915:8;4887:37;;;;;;;;;;;;;;;;;;;;;;;;;4880:44;;4765:166;;;;:::o;9042:777:18:-;9414:8;;;;;;;;;;;9400:22;;:10;:22;;;9399:67;;;;9427:39;2142:4:0;9435:18:18;;9455:10;9427:7;:39::i;:::-;9399:67;9378:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;9563:249;9583:6;9603;9623:11;9648:8;9670;9692;9714:19;9747:8;9769;9791:11;9563:6;:249::i;:::-;9042:777;;;;;;;;;;:::o;4998:897:5:-;5227:1;5213:16;;:2;:16;;;;5205:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5310:12;:10;:12::i;:::-;5302:20;;:4;:20;;;:60;;;;5326:36;5343:4;5349:12;:10;:12::i;:::-;5326:16;:36::i;:::-;5302:60;5281:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;5440:16;5459:12;:10;:12::i;:::-;5440:31;;5482:96;5503:8;5513:4;5519:2;5523:21;5541:2;5523:17;:21::i;:::-;5546:25;5564:6;5546:17;:25::i;:::-;5573:4;5482:20;:96::i;:::-;5611:77;5635:6;5611:77;;;;;;;;;;;;;;;;;:9;:13;5621:2;5611:13;;;;;;;;;;;:19;5625:4;5611:19;;;;;;;;;;;;;;;;:23;;:77;;;;;:::i;:::-;5589:9;:13;5599:2;5589:13;;;;;;;;;;;:19;5603:4;5589:19;;;;;;;;;;;;;;;:99;;;;5718:29;5740:6;5718:9;:13;5728:2;5718:13;;;;;;;;;;;:17;5732:2;5718:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;5698:9;:13;5708:2;5698:13;;;;;;;;;;;:17;5712:2;5698:17;;;;;;;;;;;;;;;:49;;;;5794:2;5763:46;;5788:4;5763:46;;5778:8;5763:46;;;5798:2;5802:6;5763:46;;;;;;;:::i;:::-;;;;;;;;5820:68;5851:8;5861:4;5867:2;5871;5875:6;5883:4;5820:30;:68::i;:::-;4998:897;;;;;;:::o;932:20:18:-;;;;;;;;;;;;;:::o;1343:90::-;1399:34;1343:90;:::o;8227:581::-;4978:16;4997:42;1399:34;5028:10;4997:7;:42::i;:::-;4978:61;;5049:16;5068:45;1498:37;5102:10;5068:7;:45::i;:::-;5049:64;;5123:15;5141:49;1604:41;5179:10;5141:7;:49::i;:::-;5123:67;;5222:11;:26;;;;5237:11;5222:26;:40;;;;5252:10;5222:40;5201:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8548:253:::1;8568:6;8588:10;8612:11;8637:8;8659;8681;8703:19;8736:8;8758;8780:11;8548:6;:253::i;:::-;8227:581:::0;;;;;;;;;;;;:::o;5598:184::-;5658:4;5710:7;5678:28;:18;:26;:28::i;:::-;:39;5674:56;;5726:4;5719:11;;;;5674:56;5747:5;5740:12;;5598:184;;;;:::o;8448:572:5:-;8581:1;8562:21;;:7;:21;;;;8554:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8632:16;8651:12;:10;:12::i;:::-;8632:31;;8674:107;8695:8;8713:1;8717:7;8726:21;8744:2;8726:17;:21::i;:::-;8749:25;8767:6;8749:17;:25::i;:::-;8776:4;8674:20;:107::i;:::-;8817:34;8844:6;8817:9;:13;8827:2;8817:13;;;;;;;;;;;:22;8831:7;8817:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;8792:9;:13;8802:2;8792:13;;;;;;;;;;;:22;8806:7;8792:22;;;;;;;;;;;;;;;:59;;;;8903:7;8866:57;;8899:1;8866:57;;8881:8;8866:57;;;8912:2;8916:6;8866:57;;;;;;;:::i;:::-;;;;;;;;8934:79;8965:8;8983:1;8987:7;8996:2;9000:6;9008:4;8934:30;:79::i;:::-;8448:572;;;;;:::o;10314:538::-;10428:1;10409:21;;:7;:21;;;;10401:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10481:16;10500:12;:10;:12::i;:::-;10481:31;;10523:105;10544:8;10554:7;10571:1;10575:21;10593:2;10575:17;:21::i;:::-;10598:25;10616:6;10598:17;:25::i;:::-;10523:105;;;;;;;;;;;;:20;:105::i;:::-;10664:108;10704:6;10664:108;;;;;;;;;;;;;;;;;:9;:13;10674:2;10664:13;;;;;;;;;;;:22;10678:7;10664:22;;;;;;;;;;;;;;;;:26;;:108;;;;;:::i;:::-;10639:9;:13;10649:2;10639:13;;;;;;;;;;;:22;10653:7;10639:22;;;;;;;;;;;;;;;:133;;;;10830:1;10788:57;;10813:7;10788:57;;10803:8;10788:57;;;10834:2;10838:6;10788:57;;;;;;;:::i;:::-;;;;;;;;10314:538;;;;:::o;2701:175:3:-;2759:7;2778:9;2794:1;2790;:5;2778:17;;2818:1;2813;:6;;2805:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2868:1;2861:8;;;2701:175;;;;:::o;828:104:10:-;881:15;915:10;908:17;;828:104;:::o;6358:1516:18:-;6617:66;6644:8;6654:4;6660:2;6664:3;6669:7;6678:4;6617:26;:66::i;:::-;6699:6;6694:1174;6715:3;:10;6711:1;:14;6694:1174;;;6747:32;6782:13;:21;6796:3;6800:1;6796:6;;;;;;;;;;;;;;6782:21;;;;;;;;;;;6747:56;;6881:11;;;;;;;;;;;6877:981;;;6986:1;6972:16;;:2;:16;;;6968:71;;;7012:8;;;6968:71;7316:1;7295:5;:17;;;;;;;;;;;;:22;;;7291:553;;7386:8;;;;;;;;;;;7374:20;;:8;:20;;;:61;;;;7398:37;2142:4:0;7406:18:18;;7426:8;7398:7;:37::i;:::-;7374:61;7341:219;;;;;;;;;;;;:::i;:::-;;;;;;;;;7291:553;;;7640:47;1604:41;7678:8;7640:7;:47::i;:::-;7607:218;;;;;;;;;;;;:::i;:::-;;;;;;;;;7291:553;6877:981;6694:1174;;6727:3;;;;;;;6694:1174;;;;6358:1516;;;;;;:::o;5443:163:3:-;5529:7;5561:1;5556;:6;;5564:12;5548:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5598:1;5594;:5;5587:12;;5443:163;;;;;:::o;13695:800:5:-;13939:15;:2;:13;;;:15::i;:::-;13935:554;;;14002:2;13974:54;;;14029:8;14039:4;14045:3;14050:7;14059:4;13974:90;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13970:509;;;;:::i;:::-;;;;;;;;14355:6;14348:14;;;;;;;;;;;:::i;:::-;;;;;;;;13970:509;14402:62;;;;;;;;;;:::i;:::-;;;;;;;;13970:509;14125:63;;;14113:75;;;:8;:75;;;;14109:172;;14212:50;;;;;;;;;;:::i;:::-;;;;;;;;14109:172;14065:230;13935:554;13695:800;;;;;;:::o;7395:184:0:-;7468:33;7493:7;7468:6;:12;7475:4;7468:12;;;;;;;;;;;:20;;:24;;:33;;;;:::i;:::-;7464:109;;;7549:12;:10;:12::i;:::-;7522:40;;7540:7;7522:40;;7534:4;7522:40;;;;;;;;;;7464:109;7395:184;;:::o;5857:217:18:-;5926:4;5961:1;5947:11;:15;;;5946:39;;;;;5983:1;5968:11;:16;;;;5946:39;5942:81;;;6008:4;6001:11;;;;5942:81;6039:5;6032:12;;5857:217;;;;:::o;7585:188:0:-;7659:36;7687:7;7659:6;:12;7666:4;7659:12;;;;;;;;;;;:20;;:27;;:36;;;;:::i;:::-;7655:112;;;7743:12;:10;:12::i;:::-;7716:40;;7734:7;7716:40;;7728:4;7716:40;;;;;;;;;;7655:112;7585:188;;:::o;1139:112:11:-;1204:7;1230;:14;;;1223:21;;1139:112;;;:::o;7688:156:12:-;7762:7;7812:22;7816:3;:10;;7828:5;7812:3;:22::i;:::-;7804:31;;7781:56;;7688:156;;;;:::o;6995:165::-;7075:4;7098:55;7108:3;:10;;7144:5;7128:23;;7120:32;;7098:9;:55::i;:::-;7091:62;;6995:165;;;;:::o;1952:123:4:-;2000:4;2024:44;2062:4;2024:29;:44::i;:::-;2023:45;2016:52;;1952:123;:::o;2185:183:5:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;2260:26:5::1;:24;:26::i;:::-;2296:25;:23;:25::i;:::-;2331:30;2356:4;2331:24;:30::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;2185:183:5;;:::o;7193:196:0:-;7328:9;7304:6;:12;7311:4;7304:12;;;;;;;;;;;:22;;;7298:4;7281:57;;;;;;;;;;7373:9;7348:6;:12;7355:4;7348:12;;;;;;;;;;;:22;;:34;;;;7193:196;;:::o;6958:110::-;7036:25;7047:4;7053:7;7036:10;:25::i;:::-;6958:110;;:::o;7241:115:12:-;7304:7;7330:19;7338:3;:10;;7330:7;:19::i;:::-;7323:26;;7241:115;;;:::o;9825:3697:18:-;10187:32;10206:12;10187:18;:32::i;:::-;10166:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;10296:11;;;;;;;;;;;10292:1598;;;10343:1;10327:12;:17;;;:38;;;;10364:1;10348:12;:17;;;10327:38;10323:853;;;10429:8;;;;;;;;;;;10415:22;;:10;:22;;;10386:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;10572:36;2142:4:0;10580:18:18;;10600:7;10572;:36::i;:::-;10543:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;10736:39;1399:34;10767:7;10736;:39::i;:::-;:85;;;;10779:42;1498:37;10813:7;10779;:42::i;:::-;10736:85;10707:211;;;;;;;;;;;;:::i;:::-;;;;;;;;;10323:853;;;10959:1;10943:12;:17;;;10939:237;;;11009:46;1604:41;11047:7;11009;:46::i;:::-;10980:181;;;;;;;;;;;;:::i;:::-;;;;;;;;;10939:237;10323:853;10292:1598;;;11226:1;11210:12;:17;;;11206:674;;;11276:39;1399:34;11307:7;11276;:39::i;:::-;11247:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;11206:674;;;11446:1;11430:12;:17;;;11426:454;;;11496:42;1498:37;11530:7;11496;:42::i;:::-;11467:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;11426:454;;;11672:1;11656:12;:17;;;11652:228;;;11722:46;1604:41;11760:7;11722;:46::i;:::-;11693:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;11652:228;11426:454;11206:674;10292:1598;11938:30;:18;:28;:30::i;:::-;12011:36;12050:13;:43;12064:28;:18;:26;:28::i;:::-;12050:43;;;;;;;;;;;12011:82;;12124:28;:18;:26;:28::i;:::-;12104:9;:17;;:48;;;;12186:12;12162:9;:21;;;:36;;;;;;;;;;;;;;;;;;12227:7;12208:9;:16;;;:26;;;;;;;;;;;;;;;;;;12263:7;12244:9;:16;;;:26;;;;;;;;;;;;;;;;;;12301:9;12280;:18;;:30;;;;12341:9;12320;:18;;:30;;;;12392:20;12360:9;:29;;:52;;;;12446:15;12422:9;:21;;:39;;;;12492:9;12471;:18;;:30;;;;;;;;;;;;:::i;:::-;;12532:9;12511;:18;;:30;;;;;;;;;;;;:::i;:::-;;12575:12;12551:9;:21;;:36;;;;;;;;;;;;:::i;:::-;;12598:65;12610:7;12619:28;:18;:26;:28::i;:::-;12649:9;12598:65;;;;;;;;;;;;:11;:65::i;:::-;12738:1;12722:12;:17;;;12718:245;;;12755:59;12767:9;:16;;;;;;;;;;;;12785:9;:17;;;12804:9;12755:11;:59::i;:::-;12884:68;12942:9;12884:16;:35;12901:9;:17;;;12884:35;;;;;;;;;;;:53;12920:9;:16;;;;;;;;;;;;12884:53;;;;;;;;;;;;;;;;:57;;:68;;;;:::i;:::-;12828:16;:35;12845:9;:17;;;12828:35;;;;;;;;;;;:53;12864:9;:16;;;;;;;;;;;;12828:53;;;;;;;;;;;;;;;:124;;;;12718:245;13248:9;:16;;;;;;;;;;;;13036:479;;13218:9;:16;;;;;;;;;;;;13036:479;;;13062:9;13085:16;:35;13102:9;:17;;;13085:35;;;;;;;;;;;:53;13121:9;:16;;;;;;;;;;;;13085:53;;;;;;;;;;;;;;;;13152:9;:17;;;13183:9;:21;;;;;;;;;;;;13278:9;:18;;;13310:9;:18;;;13342:9;:29;;;13385:9;:21;;;13420:9;:18;;13452:9;:18;;13484:9;:21;;13036:479;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9825:3697;;;;;;;;;;;:::o;14501:193:5:-;14567:16;14595:22;14634:1;14620:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14595:41;;14657:7;14646:5;14652:1;14646:8;;;;;;;;;;;;;:18;;;;;14682:5;14675:12;;;14501:193;;;:::o;12926:763::-;13145:15;:2;:13;;;:15::i;:::-;13141:542;;;13208:2;13180:49;;;13230:8;13240:4;13246:2;13250:6;13258:4;13180:83;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13176:497;;;;:::i;:::-;;;;;;;;13549:6;13542:14;;;;;;;;;;;:::i;:::-;;;;;;;;13176:497;13596:62;;;;;;;;;;:::i;:::-;;;;;;;;13176:497;13324:58;;;13312:70;;;:8;:70;;;;13308:167;;13406:50;;;;;;;;;;:::i;:::-;;;;;;;;13308:167;13264:225;13141:542;12926:763;;;;;;:::o;12685:235::-;;;;;;;:::o;737:413:9:-;797:4;1000:12;1109:7;1097:20;1089:28;;1142:1;1135:4;:8;1128:15;;;737:413;;;:::o;6440:150:12:-;6510:4;6533:50;6538:3;:10;;6574:5;6558:23;;6550:32;;6533:4;:50::i;:::-;6526:57;;6440:150;;;;:::o;6758:156::-;6831:4;6854:53;6862:3;:10;;6898:5;6882:23;;6874:32;;6854:7;:53::i;:::-;6847:60;;6758:156;;;;:::o;4463:201::-;4530:7;4578:5;4557:3;:11;;:18;;;;:26;4549:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4639:3;:11;;4651:5;4639:18;;;;;;;;;;;;;;;;4632:25;;4463:201;;;;:::o;3816:127::-;3889:4;3935:1;3912:3;:12;;:19;3925:5;3912:19;;;;;;;;;;;;:24;;3905:31;;3816:127;;;;:::o;759:64:10:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;1794:14;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;759:64:10;:::o;777:249:1:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;979:40:1::1;520:10;998:20;;979:18;:40::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;777:249:1;:::o;2374:389:5:-;1512:13:4;;;;;;;;;;;:33;;;;1529:16;:14;:16::i;:::-;1512:33;:50;;;;1550:12;;;;;;;;;;1549:13;1512:50;1504:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;1624:19;1647:13;;;;;;;;;;;1646:14;1624:36;;1674:14;1670:98;;;1720:4;1704:13;;:20;;;;;;;;;;;;;;;;;;1753:4;1738:12;;:19;;;;;;;;;;;;;;;;;;1670:98;2459:13:5::1;2467:4;2459:7;:13::i;:::-;2561:41;1973:10;2580:21;;2561:18;:41::i;:::-;2702:54;2125:10;2721:34;;2702:18;:54::i;:::-;1794:14:4::0;1790:66;;;1840:5;1824:13;;:21;;;;;;;;;;;;;;;;;;1790:66;2374:389:5;;:::o;4024:107:12:-;4080:7;4106:3;:11;;:18;;;;4099:25;;4024:107;;;:::o;1257:178:11:-;1427:1;1409:7;:14;;;:19;;;;;;;;;;;1257:178;:::o;1651:404:12:-;1714:4;1735:21;1745:3;1750:5;1735:9;:21::i;:::-;1730:319;;1772:3;:11;;1789:5;1772:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1952:3;:11;;:18;;;;1930:3;:12;;:19;1943:5;1930:19;;;;;;;;;;;:40;;;;1991:4;1984:11;;;;1730:319;2033:5;2026:12;;1651:404;;;;;:::o;2223:1512::-;2289:4;2405:18;2426:3;:12;;:19;2439:5;2426:19;;;;;;;;;;;;2405:40;;2474:1;2460:10;:15;2456:1273;;2817:21;2854:1;2841:10;:14;2817:38;;2869:17;2910:1;2889:3;:11;;:18;;;;:22;2869:42;;3151:17;3171:3;:11;;3183:9;3171:22;;;;;;;;;;;;;;;;3151:42;;3314:9;3285:3;:11;;3297:13;3285:26;;;;;;;;;;;;;;;:38;;;;3431:1;3415:13;:17;3389:3;:12;;:23;3402:9;3389:23;;;;;;;;;;;:43;;;;3538:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;3630:3;:12;;:19;3643:5;3630:19;;;;;;;;;;;3623:26;;;3671:4;3664:11;;;;;;;;2456:1273;3713:5;3706:12;;;2223:1512;;;;;:::o;1718:198:1:-;1816:10;1801:25;;:11;:25;;;;;1793:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1905:4;1869:20;:33;1890:11;1869:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1718:198;:::o;7974:86:5:-;8047:6;8040:4;:13;;;;;;;;;;;;:::i;:::-;;7974:86;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:139:19:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:761::-;;289:3;282:4;274:6;270:17;266:27;256:2;;307:1;304;297:12;256:2;347:6;334:20;372:80;387:64;444:6;387:64;:::i;:::-;372:80;:::i;:::-;363:89;;472:5;500:6;493:5;486:21;530:4;522:6;518:17;508:27;;552:4;547:3;543:14;536:21;;608:6;658:3;650:4;642:6;638:17;633:3;629:27;626:36;623:2;;;675:1;672;665:12;623:2;703:1;688:236;713:6;710:1;707:13;688:236;;;780:3;808:37;841:3;829:10;808:37;:::i;:::-;803:3;796:50;875:4;870:3;866:14;859:21;;909:4;904:3;900:14;893:21;;748:176;735:1;732;728:9;723:14;;688:236;;;692:14;246:684;;;;;;;:::o;953:761::-;;1073:3;1066:4;1058:6;1054:17;1050:27;1040:2;;1091:1;1088;1081:12;1040:2;1131:6;1118:20;1156:80;1171:64;1228:6;1171:64;:::i;:::-;1156:80;:::i;:::-;1147:89;;1256:5;1284:6;1277:5;1270:21;1314:4;1306:6;1302:17;1292:27;;1336:4;1331:3;1327:14;1320:21;;1392:6;1442:3;1434:4;1426:6;1422:17;1417:3;1413:27;1410:36;1407:2;;;1459:1;1456;1449:12;1407:2;1487:1;1472:236;1497:6;1494:1;1491:13;1472:236;;;1564:3;1592:37;1625:3;1613:10;1592:37;:::i;:::-;1587:3;1580:50;1659:4;1654:3;1650:14;1643:21;;1693:4;1688:3;1684:14;1677:21;;1532:176;1519:1;1516;1512:9;1507:14;;1472:236;;;1476:14;1030:684;;;;;;;:::o;1720:133::-;;1801:6;1788:20;1779:29;;1817:30;1841:5;1817:30;:::i;:::-;1769:84;;;;:::o;1859:139::-;;1943:6;1930:20;1921:29;;1959:33;1986:5;1959:33;:::i;:::-;1911:87;;;;:::o;2004:137::-;;2087:6;2074:20;2065:29;;2103:32;2129:5;2103:32;:::i;:::-;2055:86;;;;:::o;2147:141::-;;2234:6;2228:13;2219:22;;2250:32;2276:5;2250:32;:::i;:::-;2209:79;;;;:::o;2294:464::-;;2398:3;2391:4;2383:6;2379:17;2375:27;2365:2;;2416:1;2413;2406:12;2365:2;2456:6;2443:20;2481:64;2496:48;2537:6;2496:48;:::i;:::-;2481:64;:::i;:::-;2472:73;;2568:6;2561:5;2554:21;2607:4;2599:6;2595:17;2643:4;2636:5;2632:16;2681:3;2672:6;2667:3;2663:16;2660:25;2657:2;;;2698:1;2695;2688:12;2657:2;2711:41;2745:6;2740:3;2735;2711:41;:::i;:::-;2355:403;;;;;;;:::o;2764:466::-;;2869:3;2862:4;2854:6;2850:17;2846:27;2836:2;;2887:1;2884;2877:12;2836:2;2927:6;2914:20;2952:65;2967:49;3009:6;2967:49;:::i;:::-;2952:65;:::i;:::-;2943:74;;3040:6;3033:5;3026:21;3079:4;3071:6;3067:17;3115:4;3108:5;3104:16;3153:3;3144:6;3139:3;3135:16;3132:25;3129:2;;;3170:1;3167;3160:12;3129:2;3183:41;3217:6;3212:3;3207;3183:41;:::i;:::-;2826:404;;;;;;;:::o;3236:139::-;;3320:6;3307:20;3298:29;;3336:33;3363:5;3336:33;:::i;:::-;3288:87;;;;:::o;3381:143::-;;3469:6;3463:13;3454:22;;3485:33;3512:5;3485:33;:::i;:::-;3444:80;;;;:::o;3530:135::-;;3612:6;3599:20;3590:29;;3628:31;3653:5;3628:31;:::i;:::-;3580:85;;;;:::o;3671:260::-;;3779:2;3767:9;3758:7;3754:23;3750:32;3747:2;;;3795:1;3792;3785:12;3747:2;3837:1;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;:::i;:::-;3851:63;;3809:115;3737:194;;;;:::o;3937:403::-;;;4062:2;4050:9;4041:7;4037:23;4033:32;4030:2;;;4078:1;4075;4068:12;4030:2;4120:1;4144:53;4189:7;4180:6;4169:9;4165:22;4144:53;:::i;:::-;4134:63;;4092:115;4245:2;4270:53;4315:7;4306:6;4295:9;4291:22;4270:53;:::i;:::-;4260:63;;4217:116;4020:320;;;;;:::o;4346:1231::-;;;;;;4581:3;4569:9;4560:7;4556:23;4552:33;4549:2;;;4598:1;4595;4588:12;4549:2;4640:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4612:115;4765:2;4790:53;4835:7;4826:6;4815:9;4811:22;4790:53;:::i;:::-;4780:63;;4737:116;4919:2;4908:9;4904:18;4891:32;4950:18;4942:6;4939:30;4936:2;;;4982:1;4979;4972:12;4936:2;5009:78;5079:7;5070:6;5059:9;5055:22;5009:78;:::i;:::-;4999:88;;4863:234;5163:2;5152:9;5148:18;5135:32;5194:18;5186:6;5183:30;5180:2;;;5226:1;5223;5216:12;5180:2;5253:78;5323:7;5314:6;5303:9;5299:22;5253:78;:::i;:::-;5243:88;;5107:234;5407:3;5396:9;5392:19;5379:33;5439:18;5431:6;5428:30;5425:2;;;5471:1;5468;5461:12;5425:2;5498:62;5552:7;5543:6;5532:9;5528:22;5498:62;:::i;:::-;5488:72;;5351:219;4539:1038;;;;;;;;:::o;5583:945::-;;;;;;5768:3;5756:9;5747:7;5743:23;5739:33;5736:2;;;5785:1;5782;5775:12;5736:2;5827:1;5851:53;5896:7;5887:6;5876:9;5872:22;5851:53;:::i;:::-;5841:63;;5799:115;5952:2;5977:53;6022:7;6013:6;6002:9;5998:22;5977:53;:::i;:::-;5967:63;;5924:116;6078:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6050:116;6204:2;6229:53;6274:7;6265:6;6254:9;6250:22;6229:53;:::i;:::-;6219:63;;6176:116;6358:3;6347:9;6343:19;6330:33;6390:18;6382:6;6379:30;6376:2;;;6422:1;6419;6412:12;6376:2;6449:62;6503:7;6494:6;6483:9;6479:22;6449:62;:::i;:::-;6439:72;;6302:219;5726:802;;;;;;;;:::o;6534:1889::-;;;;;;;;;;;6823:3;6811:9;6802:7;6798:23;6794:33;6791:2;;;6840:1;6837;6830:12;6791:2;6882:1;6906:53;6951:7;6942:6;6931:9;6927:22;6906:53;:::i;:::-;6896:63;;6854:115;7007:2;7032:53;7077:7;7068:6;7057:9;7053:22;7032:53;:::i;:::-;7022:63;;6979:116;7133:2;7158:51;7201:7;7192:6;7181:9;7177:22;7158:51;:::i;:::-;7148:61;;7105:114;7257:2;7282:53;7327:7;7318:6;7307:9;7303:22;7282:53;:::i;:::-;7272:63;;7229:116;7383:3;7409:53;7454:7;7445:6;7434:9;7430:22;7409:53;:::i;:::-;7399:63;;7355:117;7510:3;7536:53;7581:7;7572:6;7561:9;7557:22;7536:53;:::i;:::-;7526:63;;7482:117;7637:3;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7609:117;7792:3;7781:9;7777:19;7764:33;7824:18;7816:6;7813:30;7810:2;;;7856:1;7853;7846:12;7810:2;7883:63;7938:7;7929:6;7918:9;7914:22;7883:63;:::i;:::-;7873:73;;7736:220;8022:3;8011:9;8007:19;7994:33;8054:18;8046:6;8043:30;8040:2;;;8086:1;8083;8076:12;8040:2;8113:63;8168:7;8159:6;8148:9;8144:22;8113:63;:::i;:::-;8103:73;;7966:220;8252:3;8241:9;8237:19;8224:33;8284:18;8276:6;8273:30;8270:2;;;8316:1;8313;8306:12;8270:2;8343:63;8398:7;8389:6;8378:9;8374:22;8343:63;:::i;:::-;8333:73;;8196:220;6781:1642;;;;;;;;;;;;;:::o;8429:397::-;;;8551:2;8539:9;8530:7;8526:23;8522:32;8519:2;;;8567:1;8564;8557:12;8519:2;8609:1;8633:53;8678:7;8669:6;8658:9;8654:22;8633:53;:::i;:::-;8623:63;;8581:115;8734:2;8759:50;8801:7;8792:6;8781:9;8777:22;8759:50;:::i;:::-;8749:60;;8706:113;8509:317;;;;;:::o;8832:403::-;;;8957:2;8945:9;8936:7;8932:23;8928:32;8925:2;;;8973:1;8970;8963:12;8925:2;9015:1;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8987:115;9140:2;9165:53;9210:7;9201:6;9190:9;9186:22;9165:53;:::i;:::-;9155:63;;9112:116;8915:320;;;;;:::o;9241:546::-;;;;9383:2;9371:9;9362:7;9358:23;9354:32;9351:2;;;9399:1;9396;9389:12;9351:2;9441:1;9465:53;9510:7;9501:6;9490:9;9486:22;9465:53;:::i;:::-;9455:63;;9413:115;9566:2;9591:53;9636:7;9627:6;9616:9;9612:22;9591:53;:::i;:::-;9581:63;;9538:116;9692:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9664:116;9341:446;;;;;:::o;9793:399::-;;;9916:2;9904:9;9895:7;9891:23;9887:32;9884:2;;;9932:1;9929;9922:12;9884:2;9974:1;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9946:115;10099:2;10124:51;10167:7;10158:6;10147:9;10143:22;10124:51;:::i;:::-;10114:61;;10071:114;9874:318;;;;;:::o;10198:1745::-;;;;;;;;;;10470:3;10458:9;10449:7;10445:23;10441:33;10438:2;;;10487:1;10484;10477:12;10438:2;10529:1;10553:53;10598:7;10589:6;10578:9;10574:22;10553:53;:::i;:::-;10543:63;;10501:115;10654:2;10679:51;10722:7;10713:6;10702:9;10698:22;10679:51;:::i;:::-;10669:61;;10626:114;10778:2;10803:53;10848:7;10839:6;10828:9;10824:22;10803:53;:::i;:::-;10793:63;;10750:116;10904:2;10929:53;10974:7;10965:6;10954:9;10950:22;10929:53;:::i;:::-;10919:63;;10876:116;11030:3;11056:53;11101:7;11092:6;11081:9;11077:22;11056:53;:::i;:::-;11046:63;;11002:117;11157:3;11183:53;11228:7;11219:6;11208:9;11204:22;11183:53;:::i;:::-;11173:63;;11129:117;11312:3;11301:9;11297:19;11284:33;11344:18;11336:6;11333:30;11330:2;;;11376:1;11373;11366:12;11330:2;11403:63;11458:7;11449:6;11438:9;11434:22;11403:63;:::i;:::-;11393:73;;11256:220;11542:3;11531:9;11527:19;11514:33;11574:18;11566:6;11563:30;11560:2;;;11606:1;11603;11596:12;11560:2;11633:63;11688:7;11679:6;11668:9;11664:22;11633:63;:::i;:::-;11623:73;;11486:220;11772:3;11761:9;11757:19;11744:33;11804:18;11796:6;11793:30;11790:2;;;11836:1;11833;11826:12;11790:2;11863:63;11918:7;11909:6;11898:9;11894:22;11863:63;:::i;:::-;11853:73;;11716:220;10428:1515;;;;;;;;;;;:::o;11949:689::-;;;12124:2;12112:9;12103:7;12099:23;12095:32;12092:2;;;12140:1;12137;12130:12;12092:2;12210:1;12199:9;12195:17;12182:31;12240:18;12232:6;12229:30;12226:2;;;12272:1;12269;12262:12;12226:2;12299:78;12369:7;12360:6;12349:9;12345:22;12299:78;:::i;:::-;12289:88;;12154:233;12453:2;12442:9;12438:18;12425:32;12484:18;12476:6;12473:30;12470:2;;;12516:1;12513;12506:12;12470:2;12543:78;12613:7;12604:6;12593:9;12589:22;12543:78;:::i;:::-;12533:88;;12397:234;12082:556;;;;;:::o;12644:254::-;;12749:2;12737:9;12728:7;12724:23;12720:32;12717:2;;;12765:1;12762;12755:12;12717:2;12807:1;12831:50;12873:7;12864:6;12853:9;12849:22;12831:50;:::i;:::-;12821:60;;12779:112;12707:191;;;;:::o;12904:260::-;;13012:2;13000:9;12991:7;12987:23;12983:32;12980:2;;;13028:1;13025;13018:12;12980:2;13070:1;13094:53;13139:7;13130:6;13119:9;13115:22;13094:53;:::i;:::-;13084:63;;13042:115;12970:194;;;;:::o;13170:403::-;;;13295:2;13283:9;13274:7;13270:23;13266:32;13263:2;;;13311:1;13308;13301:12;13263:2;13353:1;13377:53;13422:7;13413:6;13402:9;13398:22;13377:53;:::i;:::-;13367:63;;13325:115;13478:2;13503:53;13548:7;13539:6;13528:9;13524:22;13503:53;:::i;:::-;13493:63;;13450:116;13253:320;;;;;:::o;13579:403::-;;;13704:2;13692:9;13683:7;13679:23;13675:32;13672:2;;;13720:1;13717;13710:12;13672:2;13762:1;13786:53;13831:7;13822:6;13811:9;13807:22;13786:53;:::i;:::-;13776:63;;13734:115;13887:2;13912:53;13957:7;13948:6;13937:9;13933:22;13912:53;:::i;:::-;13902:63;;13859:116;13662:320;;;;;:::o;13988:258::-;;14095:2;14083:9;14074:7;14070:23;14066:32;14063:2;;;14111:1;14108;14101:12;14063:2;14153:1;14177:52;14221:7;14212:6;14201:9;14197:22;14177:52;:::i;:::-;14167:62;;14125:114;14053:193;;;;:::o;14252:280::-;;14370:2;14358:9;14349:7;14345:23;14341:32;14338:2;;;14386:1;14383;14376:12;14338:2;14428:1;14452:63;14507:7;14498:6;14487:9;14483:22;14452:63;:::i;:::-;14442:73;;14400:125;14328:204;;;;:::o;14538:260::-;;14646:2;14634:9;14625:7;14621:23;14617:32;14614:2;;;14662:1;14659;14652:12;14614:2;14704:1;14728:53;14773:7;14764:6;14753:9;14749:22;14728:53;:::i;:::-;14718:63;;14676:115;14604:194;;;;:::o;14804:282::-;;14923:2;14911:9;14902:7;14898:23;14894:32;14891:2;;;14939:1;14936;14929:12;14891:2;14981:1;15005:64;15061:7;15052:6;15041:9;15037:22;15005:64;:::i;:::-;14995:74;;14953:126;14881:205;;;;:::o;15092:403::-;;;15217:2;15205:9;15196:7;15192:23;15188:32;15185:2;;;15233:1;15230;15223:12;15185:2;15275:1;15299:53;15344:7;15335:6;15324:9;15320:22;15299:53;:::i;:::-;15289:63;;15247:115;15400:2;15425:53;15470:7;15461:6;15450:9;15446:22;15425:53;:::i;:::-;15415:63;;15372:116;15175:320;;;;;:::o;15501:179::-;;15591:46;15633:3;15625:6;15591:46;:::i;:::-;15669:4;15664:3;15660:14;15646:28;;15581:99;;;;:::o;15686:108::-;15763:24;15781:5;15763:24;:::i;:::-;15758:3;15751:37;15741:53;;:::o;15800:118::-;15887:24;15905:5;15887:24;:::i;:::-;15882:3;15875:37;15865:53;;:::o;15954:732::-;;16102:54;16150:5;16102:54;:::i;:::-;16172:86;16251:6;16246:3;16172:86;:::i;:::-;16165:93;;16282:56;16332:5;16282:56;:::i;:::-;16361:7;16392:1;16377:284;16402:6;16399:1;16396:13;16377:284;;;16478:6;16472:13;16505:63;16564:3;16549:13;16505:63;:::i;:::-;16498:70;;16591:60;16644:6;16591:60;:::i;:::-;16581:70;;16437:224;16424:1;16421;16417:9;16412:14;;16377:284;;;16381:14;16677:3;16670:10;;16078:608;;;;;;;:::o;16692:109::-;16773:21;16788:5;16773:21;:::i;:::-;16768:3;16761:34;16751:50;;:::o;16807:118::-;16894:24;16912:5;16894:24;:::i;:::-;16889:3;16882:37;16872:53;;:::o;16931:360::-;;17045:38;17077:5;17045:38;:::i;:::-;17099:70;17162:6;17157:3;17099:70;:::i;:::-;17092:77;;17178:52;17223:6;17218:3;17211:4;17204:5;17200:16;17178:52;:::i;:::-;17255:29;17277:6;17255:29;:::i;:::-;17250:3;17246:39;17239:46;;17021:270;;;;;:::o;17297:344::-;;17403:39;17436:5;17403:39;:::i;:::-;17458:61;17512:6;17507:3;17458:61;:::i;:::-;17451:68;;17528:52;17573:6;17568:3;17561:4;17554:5;17550:16;17528:52;:::i;:::-;17605:29;17627:6;17605:29;:::i;:::-;17600:3;17596:39;17589:46;;17379:262;;;;;:::o;17647:364::-;;17763:39;17796:5;17763:39;:::i;:::-;17818:71;17882:6;17877:3;17818:71;:::i;:::-;17811:78;;17898:52;17943:6;17938:3;17931:4;17924:5;17920:16;17898:52;:::i;:::-;17975:29;17997:6;17975:29;:::i;:::-;17970:3;17966:39;17959:46;;17739:272;;;;;:::o;18041:937::-;;18163:5;18157:12;18200:1;18189:9;18185:17;18216:1;18211:281;;;;18506:1;18501:471;;;;18178:794;;18211:281;18301:4;18297:1;18286:9;18282:17;18278:28;18326:71;18390:6;18385:3;18326:71;:::i;:::-;18319:78;;18441:4;18437:9;18426;18422:25;18417:3;18410:38;18477:4;18472:3;18468:14;18461:21;;18218:274;18211:281;;18501:471;18582:1;18571:9;18567:17;18604:71;18668:6;18663:3;18604:71;:::i;:::-;18597:78;;18703:38;18735:5;18703:38;:::i;:::-;18763:1;18777:154;18791:6;18788:1;18785:13;18777:154;;;18865:7;18859:14;18855:1;18850:3;18846:11;18839:35;18915:1;18906:7;18902:15;18891:26;;18813:4;18810:1;18806:12;18801:17;;18777:154;;;18960:1;18955:3;18951:11;18944:18;;18508:464;;;18178:794;;18130:848;;;;;:::o;18984:384::-;;19147:67;19211:2;19206:3;19147:67;:::i;:::-;19140:74;;19244:34;19240:1;19235:3;19231:11;19224:55;19310:22;19305:2;19300:3;19296:12;19289:44;19359:2;19354:3;19350:12;19343:19;;19130:238;;;:::o;19374:385::-;;19537:67;19601:2;19596:3;19537:67;:::i;:::-;19530:74;;19634:34;19630:1;19625:3;19621:11;19614:55;19700:23;19695:2;19690:3;19686:12;19679:45;19750:2;19745:3;19741:12;19734:19;;19520:239;;;:::o;19765:366::-;;19928:67;19992:2;19987:3;19928:67;:::i;:::-;19921:74;;20025:34;20021:1;20016:3;20012:11;20005:55;20091:4;20086:2;20081:3;20077:12;20070:26;20122:2;20117:3;20113:12;20106:19;;19911:220;;;:::o;20137:372::-;;20300:67;20364:2;20359:3;20300:67;:::i;:::-;20293:74;;20397:34;20393:1;20388:3;20384:11;20377:55;20463:10;20458:2;20453:3;20449:12;20442:32;20500:2;20495:3;20491:12;20484:19;;20283:226;;;:::o;20515:379::-;;20678:67;20742:2;20737:3;20678:67;:::i;:::-;20671:74;;20775:34;20771:1;20766:3;20762:11;20755:55;20841:17;20836:2;20831:3;20827:12;20820:39;20885:2;20880:3;20876:12;20869:19;;20661:233;;;:::o;20900:373::-;;21063:67;21127:2;21122:3;21063:67;:::i;:::-;21056:74;;21160:34;21156:1;21151:3;21147:11;21140:55;21226:11;21221:2;21216:3;21212:12;21205:33;21264:2;21259:3;21255:12;21248:19;;21046:227;;;:::o;21279:375::-;;21442:67;21506:2;21501:3;21442:67;:::i;:::-;21435:74;;21539:34;21535:1;21530:3;21526:11;21519:55;21605:13;21600:2;21595:3;21591:12;21584:35;21645:2;21640:3;21636:12;21629:19;;21425:229;;;:::o;21660:326::-;;21823:67;21887:2;21882:3;21823:67;:::i;:::-;21816:74;;21920:30;21916:1;21911:3;21907:11;21900:51;21977:2;21972:3;21968:12;21961:19;;21806:180;;;:::o;21992:368::-;;22155:67;22219:2;22214:3;22155:67;:::i;:::-;22148:74;;22252:34;22248:1;22243:3;22239:11;22232:55;22318:6;22313:2;22308:3;22304:12;22297:28;22351:2;22346:3;22342:12;22335:19;;22138:222;;;:::o;22366:325::-;;22529:67;22593:2;22588:3;22529:67;:::i;:::-;22522:74;;22626:29;22622:1;22617:3;22613:11;22606:50;22682:2;22677:3;22673:12;22666:19;;22512:179;;;:::o;22697:366::-;;22860:67;22924:2;22919:3;22860:67;:::i;:::-;22853:74;;22957:34;22953:1;22948:3;22944:11;22937:55;23023:4;23018:2;23013:3;23009:12;23002:26;23054:2;23049:3;23045:12;23038:19;;22843:220;;;:::o;23069:382::-;;23232:67;23296:2;23291:3;23232:67;:::i;:::-;23225:74;;23329:34;23325:1;23320:3;23316:11;23309:55;23395:20;23390:2;23385:3;23381:12;23374:42;23442:2;23437:3;23433:12;23426:19;;23215:236;;;:::o;23457:373::-;;23620:67;23684:2;23679:3;23620:67;:::i;:::-;23613:74;;23717:34;23713:1;23708:3;23704:11;23697:55;23783:11;23778:2;23773:3;23769:12;23762:33;23821:2;23816:3;23812:12;23805:19;;23603:227;;;:::o;23836:436::-;;23999:67;24063:2;24058:3;23999:67;:::i;:::-;23992:74;;24096:34;24092:1;24087:3;24083:11;24076:55;24162:34;24157:2;24152:3;24148:12;24141:56;24228:8;24223:2;24218:3;24214:12;24207:30;24263:2;24258:3;24254:12;24247:19;;23982:290;;;:::o;24278:374::-;;24441:67;24505:2;24500:3;24441:67;:::i;:::-;24434:74;;24538:34;24534:1;24529:3;24525:11;24518:55;24604:12;24599:2;24594:3;24590:12;24583:34;24643:2;24638:3;24634:12;24627:19;;24424:228;;;:::o;24658:373::-;;24821:67;24885:2;24880:3;24821:67;:::i;:::-;24814:74;;24918:34;24914:1;24909:3;24905:11;24898:55;24984:11;24979:2;24974:3;24970:12;24963:33;25022:2;25017:3;25013:12;25006:19;;24804:227;;;:::o;25037:383::-;;25200:67;25264:2;25259:3;25200:67;:::i;:::-;25193:74;;25297:34;25293:1;25288:3;25284:11;25277:55;25363:21;25358:2;25353:3;25349:12;25342:43;25411:2;25406:3;25402:12;25395:19;;25183:237;;;:::o;25426:380::-;;25589:67;25653:2;25648:3;25589:67;:::i;:::-;25582:74;;25686:34;25682:1;25677:3;25673:11;25666:55;25752:18;25747:2;25742:3;25738:12;25731:40;25797:2;25792:3;25788:12;25781:19;;25572:234;;;:::o;25812:384::-;;25975:67;26039:2;26034:3;25975:67;:::i;:::-;25968:74;;26072:34;26068:1;26063:3;26059:11;26052:55;26138:22;26133:2;26128:3;26124:12;26117:44;26187:2;26182:3;26178:12;26171:19;;25958:238;;;:::o;26202:387::-;;26365:67;26429:2;26424:3;26365:67;:::i;:::-;26358:74;;26462:34;26458:1;26453:3;26449:11;26442:55;26528:25;26523:2;26518:3;26514:12;26507:47;26580:2;26575:3;26571:12;26564:19;;26348:241;;;:::o;26595:369::-;;26758:67;26822:2;26817:3;26758:67;:::i;:::-;26751:74;;26855:34;26851:1;26846:3;26842:11;26835:55;26921:7;26916:2;26911:3;26907:12;26900:29;26955:2;26950:3;26946:12;26939:19;;26741:223;;;:::o;26970:382::-;;27133:67;27197:2;27192:3;27133:67;:::i;:::-;27126:74;;27230:34;27226:1;27221:3;27217:11;27210:55;27296:20;27291:2;27286:3;27282:12;27275:42;27343:2;27338:3;27334:12;27327:19;;27116:236;;;:::o;27358:378::-;;27521:67;27585:2;27580:3;27521:67;:::i;:::-;27514:74;;27618:34;27614:1;27609:3;27605:11;27598:55;27684:16;27679:2;27674:3;27670:12;27663:38;27727:2;27722:3;27718:12;27711:19;;27504:232;;;:::o;27742:367::-;;27905:67;27969:2;27964:3;27905:67;:::i;:::-;27898:74;;28002:34;27998:1;27993:3;27989:11;27982:55;28068:5;28063:2;28058:3;28054:12;28047:27;28100:2;28095:3;28091:12;28084:19;;27888:221;;;:::o;28115:386::-;;28278:67;28342:2;28337:3;28278:67;:::i;:::-;28271:74;;28375:34;28371:1;28366:3;28362:11;28355:55;28441:24;28436:2;28431:3;28427:12;28420:46;28492:2;28487:3;28483:12;28476:19;;28261:240;;;:::o;28507:382::-;;28670:67;28734:2;28729:3;28670:67;:::i;:::-;28663:74;;28767:34;28763:1;28758:3;28754:11;28747:55;28833:20;28828:2;28823:3;28819:12;28812:42;28880:2;28875:3;28871:12;28864:19;;28653:236;;;:::o;28895:380::-;;29058:67;29122:2;29117:3;29058:67;:::i;:::-;29051:74;;29155:34;29151:1;29146:3;29142:11;29135:55;29221:18;29216:2;29211:3;29207:12;29200:40;29266:2;29261:3;29257:12;29250:19;;29041:234;;;:::o;29281:370::-;;29444:67;29508:2;29503:3;29444:67;:::i;:::-;29437:74;;29541:34;29537:1;29532:3;29528:11;29521:55;29607:8;29602:2;29597:3;29593:12;29586:30;29642:2;29637:3;29633:12;29626:19;;29427:224;;;:::o;29657:432::-;;29820:67;29884:2;29879:3;29820:67;:::i;:::-;29813:74;;29917:34;29913:1;29908:3;29904:11;29897:55;29983:34;29978:2;29973:3;29969:12;29962:56;30049:4;30044:2;30039:3;30035:12;30028:26;30080:2;30075:3;30071:12;30064:19;;29803:286;;;:::o;30095:387::-;;30258:67;30322:2;30317:3;30258:67;:::i;:::-;30251:74;;30355:34;30351:1;30346:3;30342:11;30335:55;30421:25;30416:2;30411:3;30407:12;30400:47;30473:2;30468:3;30464:12;30457:19;;30241:241;;;:::o;30488:378::-;;30651:67;30715:2;30710:3;30651:67;:::i;:::-;30644:74;;30748:34;30744:1;30739:3;30735:11;30728:55;30814:16;30809:2;30804:3;30800:12;30793:38;30857:2;30852:3;30848:12;30841:19;;30634:232;;;:::o;30872:383::-;;31035:67;31099:2;31094:3;31035:67;:::i;:::-;31028:74;;31132:34;31128:1;31123:3;31119:11;31112:55;31198:21;31193:2;31188:3;31184:12;31177:43;31246:2;31241:3;31237:12;31230:19;;31018:237;;;:::o;31261:454::-;;31424:67;31488:2;31483:3;31424:67;:::i;:::-;31417:74;;31521:34;31517:1;31512:3;31508:11;31501:55;31587:34;31582:2;31577:3;31573:12;31566:56;31653:26;31648:2;31643:3;31639:12;31632:48;31706:2;31701:3;31697:12;31690:19;;31407:308;;;:::o;31721:396::-;;31884:67;31948:2;31943:3;31884:67;:::i;:::-;31877:74;;31981:34;31977:1;31972:3;31968:11;31961:55;32047:34;32042:2;32037:3;32033:12;32026:56;32108:2;32103:3;32099:12;32092:19;;31867:250;;;:::o;32123:371::-;;32286:67;32350:2;32345:3;32286:67;:::i;:::-;32279:74;;32383:34;32379:1;32374:3;32370:11;32363:55;32449:9;32444:2;32439:3;32435:12;32428:31;32485:2;32480:3;32476:12;32469:19;;32269:225;;;:::o;32500:373::-;;32663:67;32727:2;32722:3;32663:67;:::i;:::-;32656:74;;32760:34;32756:1;32751:3;32747:11;32740:55;32826:11;32821:2;32816:3;32812:12;32805:33;32864:2;32859:3;32855:12;32848:19;;32646:227;;;:::o;32879:373::-;;33042:67;33106:2;33101:3;33042:67;:::i;:::-;33035:74;;33139:34;33135:1;33130:3;33126:11;33119:55;33205:11;33200:2;33195:3;33191:12;33184:33;33243:2;33238:3;33234:12;33227:19;;33025:227;;;:::o;33258:380::-;;33421:67;33485:2;33480:3;33421:67;:::i;:::-;33414:74;;33518:34;33514:1;33509:3;33505:11;33498:55;33584:18;33579:2;33574:3;33570:12;33563:40;33629:2;33624:3;33620:12;33613:19;;33404:234;;;:::o;33644:372::-;;33807:67;33871:2;33866:3;33807:67;:::i;:::-;33800:74;;33904:34;33900:1;33895:3;33891:11;33884:55;33970:10;33965:2;33960:3;33956:12;33949:32;34007:2;34002:3;33998:12;33991:19;;33790:226;;;:::o;34022:365::-;;34185:67;34249:2;34244:3;34185:67;:::i;:::-;34178:74;;34282:34;34278:1;34273:3;34269:11;34262:55;34348:3;34343:2;34338:3;34334:12;34327:25;34378:2;34373:3;34369:12;34362:19;;34168:219;;;:::o;34393:393::-;;34556:67;34620:2;34615:3;34556:67;:::i;:::-;34549:74;;34653:34;34649:1;34644:3;34640:11;34633:55;34719:31;34714:2;34709:3;34705:12;34698:53;34777:2;34772:3;34768:12;34761:19;;34539:247;;;:::o;34792:368::-;;34955:67;35019:2;35014:3;34955:67;:::i;:::-;34948:74;;35052:34;35048:1;35043:3;35039:11;35032:55;35118:6;35113:2;35108:3;35104:12;35097:28;35151:2;35146:3;35142:12;35135:19;;34938:222;;;:::o;35166:379::-;;35329:67;35393:2;35388:3;35329:67;:::i;:::-;35322:74;;35426:34;35422:1;35417:3;35413:11;35406:55;35492:17;35487:2;35482:3;35478:12;35471:39;35536:2;35531:3;35527:12;35520:19;;35312:233;;;:::o;35551:441::-;;35714:67;35778:2;35773:3;35714:67;:::i;:::-;35707:74;;35811:34;35807:1;35802:3;35798:11;35791:55;35877:34;35872:2;35867:3;35863:12;35856:56;35943:13;35938:2;35933:3;35929:12;35922:35;35983:2;35978:3;35974:12;35967:19;;35697:295;;;:::o;36114:2405::-;;36291:6;36286:3;36282:16;36383:4;36376:5;36372:16;36366:23;36402:63;36459:4;36454:3;36450:14;36436:12;36402:63;:::i;:::-;36308:167;36564:4;36557:5;36553:16;36547:23;36583:59;36636:4;36631:3;36627:14;36613:12;36583:59;:::i;:::-;36485:167;36736:4;36729:5;36725:16;36719:23;36755:63;36812:4;36807:3;36803:14;36789:12;36755:63;:::i;:::-;36662:166;36912:4;36905:5;36901:16;36895:23;36931:63;36988:4;36983:3;36979:14;36965:12;36931:63;:::i;:::-;36838:166;37090:4;37083:5;37079:16;37073:23;37109:63;37166:4;37161:3;37157:14;37143:12;37109:63;:::i;:::-;37014:168;37268:4;37261:5;37257:16;37251:23;37287:63;37344:4;37339:3;37335:14;37321:12;37287:63;:::i;:::-;37192:168;37449:4;37442:5;37438:16;37432:23;37468:63;37525:4;37520:3;37516:14;37502:12;37468:63;:::i;:::-;37370:171;37638:4;37631:5;37627:16;37621:23;37657:63;37714:4;37709:3;37705:14;37691:12;37657:63;:::i;:::-;37551:179;37816:6;37809:5;37805:18;37799:25;37873:3;37867:4;37863:14;37854:6;37849:3;37845:16;37838:40;37899:73;37967:4;37953:12;37899:73;:::i;:::-;37891:81;;37740:243;38069:6;38062:5;38058:18;38052:25;38126:3;38120:4;38116:14;38107:6;38102:3;38098:16;38091:40;38152:73;38220:4;38206:12;38152:73;:::i;:::-;38144:81;;37993:243;38325:6;38318:5;38314:18;38308:25;38382:3;38376:4;38372:14;38363:6;38358:3;38354:16;38347:40;38408:73;38476:4;38462:12;38408:73;:::i;:::-;38400:81;;38246:246;38509:4;38502:11;;36260:2259;;;;;:::o;38525:108::-;38602:24;38620:5;38602:24;:::i;:::-;38597:3;38590:37;38580:53;;:::o;38639:118::-;38726:24;38744:5;38726:24;:::i;:::-;38721:3;38714:37;38704:53;;:::o;38763:102::-;38836:22;38852:5;38836:22;:::i;:::-;38831:3;38824:35;38814:51;;:::o;38871:112::-;38954:22;38970:5;38954:22;:::i;:::-;38949:3;38942:35;38932:51;;:::o;38989:222::-;;39120:2;39109:9;39105:18;39097:26;;39133:71;39201:1;39190:9;39186:17;39177:6;39133:71;:::i;:::-;39087:124;;;;:::o;39217:1053::-;;39578:3;39567:9;39563:19;39555:27;;39592:71;39660:1;39649:9;39645:17;39636:6;39592:71;:::i;:::-;39673:72;39741:2;39730:9;39726:18;39717:6;39673:72;:::i;:::-;39792:9;39786:4;39782:20;39777:2;39766:9;39762:18;39755:48;39820:108;39923:4;39914:6;39820:108;:::i;:::-;39812:116;;39975:9;39969:4;39965:20;39960:2;39949:9;39945:18;39938:48;40003:108;40106:4;40097:6;40003:108;:::i;:::-;39995:116;;40159:9;40153:4;40149:20;40143:3;40132:9;40128:19;40121:49;40187:76;40258:4;40249:6;40187:76;:::i;:::-;40179:84;;39545:725;;;;;;;;:::o;40276:751::-;;40537:3;40526:9;40522:19;40514:27;;40551:71;40619:1;40608:9;40604:17;40595:6;40551:71;:::i;:::-;40632:72;40700:2;40689:9;40685:18;40676:6;40632:72;:::i;:::-;40714;40782:2;40771:9;40767:18;40758:6;40714:72;:::i;:::-;40796;40864:2;40853:9;40849:18;40840:6;40796:72;:::i;:::-;40916:9;40910:4;40906:20;40900:3;40889:9;40885:19;40878:49;40944:76;41015:4;41006:6;40944:76;:::i;:::-;40936:84;;40504:523;;;;;;;;:::o;41033:332::-;;41192:2;41181:9;41177:18;41169:26;;41205:71;41273:1;41262:9;41258:17;41249:6;41205:71;:::i;:::-;41286:72;41354:2;41343:9;41339:18;41330:6;41286:72;:::i;:::-;41159:206;;;;;:::o;41371:373::-;;41552:2;41541:9;41537:18;41529:26;;41601:9;41595:4;41591:20;41587:1;41576:9;41572:17;41565:47;41629:108;41732:4;41723:6;41629:108;:::i;:::-;41621:116;;41519:225;;;;:::o;41750:634::-;;42009:2;41998:9;41994:18;41986:26;;42058:9;42052:4;42048:20;42044:1;42033:9;42029:17;42022:47;42086:108;42189:4;42180:6;42086:108;:::i;:::-;42078:116;;42241:9;42235:4;42231:20;42226:2;42215:9;42211:18;42204:48;42269:108;42372:4;42363:6;42269:108;:::i;:::-;42261:116;;41976:408;;;;;:::o;42390:210::-;;42515:2;42504:9;42500:18;42492:26;;42528:65;42590:1;42579:9;42575:17;42566:6;42528:65;:::i;:::-;42482:118;;;;:::o;42606:604::-;;42819:3;42808:9;42804:19;42796:27;;42833:65;42895:1;42884:9;42880:17;42871:6;42833:65;:::i;:::-;42908:66;42970:2;42959:9;42955:18;42946:6;42908:66;:::i;:::-;42984;43046:2;43035:9;43031:18;43022:6;42984:66;:::i;:::-;43060;43122:2;43111:9;43107:18;43098:6;43060:66;:::i;:::-;43136:67;43198:3;43187:9;43183:19;43174:6;43136:67;:::i;:::-;42786:424;;;;;;;;:::o;43216:222::-;;43347:2;43336:9;43332:18;43324:26;;43360:71;43428:1;43417:9;43413:17;43404:6;43360:71;:::i;:::-;43314:124;;;;:::o;43444:313::-;;43595:2;43584:9;43580:18;43572:26;;43644:9;43638:4;43634:20;43630:1;43619:9;43615:17;43608:47;43672:78;43745:4;43736:6;43672:78;:::i;:::-;43664:86;;43562:195;;;;:::o;43763:419::-;;43967:2;43956:9;43952:18;43944:26;;44016:9;44010:4;44006:20;44002:1;43991:9;43987:17;43980:47;44044:131;44170:4;44044:131;:::i;:::-;44036:139;;43934:248;;;:::o;44188:419::-;;44392:2;44381:9;44377:18;44369:26;;44441:9;44435:4;44431:20;44427:1;44416:9;44412:17;44405:47;44469:131;44595:4;44469:131;:::i;:::-;44461:139;;44359:248;;;:::o;44613:419::-;;44817:2;44806:9;44802:18;44794:26;;44866:9;44860:4;44856:20;44852:1;44841:9;44837:17;44830:47;44894:131;45020:4;44894:131;:::i;:::-;44886:139;;44784:248;;;:::o;45038:419::-;;45242:2;45231:9;45227:18;45219:26;;45291:9;45285:4;45281:20;45277:1;45266:9;45262:17;45255:47;45319:131;45445:4;45319:131;:::i;:::-;45311:139;;45209:248;;;:::o;45463:419::-;;45667:2;45656:9;45652:18;45644:26;;45716:9;45710:4;45706:20;45702:1;45691:9;45687:17;45680:47;45744:131;45870:4;45744:131;:::i;:::-;45736:139;;45634:248;;;:::o;45888:419::-;;46092:2;46081:9;46077:18;46069:26;;46141:9;46135:4;46131:20;46127:1;46116:9;46112:17;46105:47;46169:131;46295:4;46169:131;:::i;:::-;46161:139;;46059:248;;;:::o;46313:419::-;;46517:2;46506:9;46502:18;46494:26;;46566:9;46560:4;46556:20;46552:1;46541:9;46537:17;46530:47;46594:131;46720:4;46594:131;:::i;:::-;46586:139;;46484:248;;;:::o;46738:419::-;;46942:2;46931:9;46927:18;46919:26;;46991:9;46985:4;46981:20;46977:1;46966:9;46962:17;46955:47;47019:131;47145:4;47019:131;:::i;:::-;47011:139;;46909:248;;;:::o;47163:419::-;;47367:2;47356:9;47352:18;47344:26;;47416:9;47410:4;47406:20;47402:1;47391:9;47387:17;47380:47;47444:131;47570:4;47444:131;:::i;:::-;47436:139;;47334:248;;;:::o;47588:419::-;;47792:2;47781:9;47777:18;47769:26;;47841:9;47835:4;47831:20;47827:1;47816:9;47812:17;47805:47;47869:131;47995:4;47869:131;:::i;:::-;47861:139;;47759:248;;;:::o;48013:419::-;;48217:2;48206:9;48202:18;48194:26;;48266:9;48260:4;48256:20;48252:1;48241:9;48237:17;48230:47;48294:131;48420:4;48294:131;:::i;:::-;48286:139;;48184:248;;;:::o;48438:419::-;;48642:2;48631:9;48627:18;48619:26;;48691:9;48685:4;48681:20;48677:1;48666:9;48662:17;48655:47;48719:131;48845:4;48719:131;:::i;:::-;48711:139;;48609:248;;;:::o;48863:419::-;;49067:2;49056:9;49052:18;49044:26;;49116:9;49110:4;49106:20;49102:1;49091:9;49087:17;49080:47;49144:131;49270:4;49144:131;:::i;:::-;49136:139;;49034:248;;;:::o;49288:419::-;;49492:2;49481:9;49477:18;49469:26;;49541:9;49535:4;49531:20;49527:1;49516:9;49512:17;49505:47;49569:131;49695:4;49569:131;:::i;:::-;49561:139;;49459:248;;;:::o;49713:419::-;;49917:2;49906:9;49902:18;49894:26;;49966:9;49960:4;49956:20;49952:1;49941:9;49937:17;49930:47;49994:131;50120:4;49994:131;:::i;:::-;49986:139;;49884:248;;;:::o;50138:419::-;;50342:2;50331:9;50327:18;50319:26;;50391:9;50385:4;50381:20;50377:1;50366:9;50362:17;50355:47;50419:131;50545:4;50419:131;:::i;:::-;50411:139;;50309:248;;;:::o;50563:419::-;;50767:2;50756:9;50752:18;50744:26;;50816:9;50810:4;50806:20;50802:1;50791:9;50787:17;50780:47;50844:131;50970:4;50844:131;:::i;:::-;50836:139;;50734:248;;;:::o;50988:419::-;;51192:2;51181:9;51177:18;51169:26;;51241:9;51235:4;51231:20;51227:1;51216:9;51212:17;51205:47;51269:131;51395:4;51269:131;:::i;:::-;51261:139;;51159:248;;;:::o;51413:419::-;;51617:2;51606:9;51602:18;51594:26;;51666:9;51660:4;51656:20;51652:1;51641:9;51637:17;51630:47;51694:131;51820:4;51694:131;:::i;:::-;51686:139;;51584:248;;;:::o;51838:419::-;;52042:2;52031:9;52027:18;52019:26;;52091:9;52085:4;52081:20;52077:1;52066:9;52062:17;52055:47;52119:131;52245:4;52119:131;:::i;:::-;52111:139;;52009:248;;;:::o;52263:419::-;;52467:2;52456:9;52452:18;52444:26;;52516:9;52510:4;52506:20;52502:1;52491:9;52487:17;52480:47;52544:131;52670:4;52544:131;:::i;:::-;52536:139;;52434:248;;;:::o;52688:419::-;;52892:2;52881:9;52877:18;52869:26;;52941:9;52935:4;52931:20;52927:1;52916:9;52912:17;52905:47;52969:131;53095:4;52969:131;:::i;:::-;52961:139;;52859:248;;;:::o;53113:419::-;;53317:2;53306:9;53302:18;53294:26;;53366:9;53360:4;53356:20;53352:1;53341:9;53337:17;53330:47;53394:131;53520:4;53394:131;:::i;:::-;53386:139;;53284:248;;;:::o;53538:419::-;;53742:2;53731:9;53727:18;53719:26;;53791:9;53785:4;53781:20;53777:1;53766:9;53762:17;53755:47;53819:131;53945:4;53819:131;:::i;:::-;53811:139;;53709:248;;;:::o;53963:419::-;;54167:2;54156:9;54152:18;54144:26;;54216:9;54210:4;54206:20;54202:1;54191:9;54187:17;54180:47;54244:131;54370:4;54244:131;:::i;:::-;54236:139;;54134:248;;;:::o;54388:419::-;;54592:2;54581:9;54577:18;54569:26;;54641:9;54635:4;54631:20;54627:1;54616:9;54612:17;54605:47;54669:131;54795:4;54669:131;:::i;:::-;54661:139;;54559:248;;;:::o;54813:419::-;;55017:2;55006:9;55002:18;54994:26;;55066:9;55060:4;55056:20;55052:1;55041:9;55037:17;55030:47;55094:131;55220:4;55094:131;:::i;:::-;55086:139;;54984:248;;;:::o;55238:419::-;;55442:2;55431:9;55427:18;55419:26;;55491:9;55485:4;55481:20;55477:1;55466:9;55462:17;55455:47;55519:131;55645:4;55519:131;:::i;:::-;55511:139;;55409:248;;;:::o;55663:419::-;;55867:2;55856:9;55852:18;55844:26;;55916:9;55910:4;55906:20;55902:1;55891:9;55887:17;55880:47;55944:131;56070:4;55944:131;:::i;:::-;55936:139;;55834:248;;;:::o;56088:419::-;;56292:2;56281:9;56277:18;56269:26;;56341:9;56335:4;56331:20;56327:1;56316:9;56312:17;56305:47;56369:131;56495:4;56369:131;:::i;:::-;56361:139;;56259:248;;;:::o;56513:419::-;;56717:2;56706:9;56702:18;56694:26;;56766:9;56760:4;56756:20;56752:1;56741:9;56737:17;56730:47;56794:131;56920:4;56794:131;:::i;:::-;56786:139;;56684:248;;;:::o;56938:419::-;;57142:2;57131:9;57127:18;57119:26;;57191:9;57185:4;57181:20;57177:1;57166:9;57162:17;57155:47;57219:131;57345:4;57219:131;:::i;:::-;57211:139;;57109:248;;;:::o;57363:419::-;;57567:2;57556:9;57552:18;57544:26;;57616:9;57610:4;57606:20;57602:1;57591:9;57587:17;57580:47;57644:131;57770:4;57644:131;:::i;:::-;57636:139;;57534:248;;;:::o;57788:419::-;;57992:2;57981:9;57977:18;57969:26;;58041:9;58035:4;58031:20;58027:1;58016:9;58012:17;58005:47;58069:131;58195:4;58069:131;:::i;:::-;58061:139;;57959:248;;;:::o;58213:419::-;;58417:2;58406:9;58402:18;58394:26;;58466:9;58460:4;58456:20;58452:1;58441:9;58437:17;58430:47;58494:131;58620:4;58494:131;:::i;:::-;58486:139;;58384:248;;;:::o;58638:419::-;;58842:2;58831:9;58827:18;58819:26;;58891:9;58885:4;58881:20;58877:1;58866:9;58862:17;58855:47;58919:131;59045:4;58919:131;:::i;:::-;58911:139;;58809:248;;;:::o;59063:419::-;;59267:2;59256:9;59252:18;59244:26;;59316:9;59310:4;59306:20;59302:1;59291:9;59287:17;59280:47;59344:131;59470:4;59344:131;:::i;:::-;59336:139;;59234:248;;;:::o;59488:419::-;;59692:2;59681:9;59677:18;59669:26;;59741:9;59735:4;59731:20;59727:1;59716:9;59712:17;59705:47;59769:131;59895:4;59769:131;:::i;:::-;59761:139;;59659:248;;;:::o;59913:419::-;;60117:2;60106:9;60102:18;60094:26;;60166:9;60160:4;60156:20;60152:1;60141:9;60137:17;60130:47;60194:131;60320:4;60194:131;:::i;:::-;60186:139;;60084:248;;;:::o;60338:419::-;;60542:2;60531:9;60527:18;60519:26;;60591:9;60585:4;60581:20;60577:1;60566:9;60562:17;60555:47;60619:131;60745:4;60619:131;:::i;:::-;60611:139;;60509:248;;;:::o;60763:419::-;;60967:2;60956:9;60952:18;60944:26;;61016:9;61010:4;61006:20;61002:1;60991:9;60987:17;60980:47;61044:131;61170:4;61044:131;:::i;:::-;61036:139;;60934:248;;;:::o;61188:419::-;;61392:2;61381:9;61377:18;61369:26;;61441:9;61435:4;61431:20;61427:1;61416:9;61412:17;61405:47;61469:131;61595:4;61469:131;:::i;:::-;61461:139;;61359:248;;;:::o;61613:419::-;;61817:2;61806:9;61802:18;61794:26;;61866:9;61860:4;61856:20;61852:1;61841:9;61837:17;61830:47;61894:131;62020:4;61894:131;:::i;:::-;61886:139;;61784:248;;;:::o;62038:419::-;;62242:2;62231:9;62227:18;62219:26;;62291:9;62285:4;62281:20;62277:1;62266:9;62262:17;62255:47;62319:131;62445:4;62319:131;:::i;:::-;62311:139;;62209:248;;;:::o;62463:417::-;;62666:2;62655:9;62651:18;62643:26;;62715:9;62709:4;62705:20;62701:1;62690:9;62686:17;62679:47;62743:130;62868:4;62859:6;62743:130;:::i;:::-;62735:138;;62633:247;;;;:::o;62886:222::-;;63017:2;63006:9;63002:18;62994:26;;63030:71;63098:1;63087:9;63083:17;63074:6;63030:71;:::i;:::-;62984:124;;;;:::o;63114:332::-;;63273:2;63262:9;63258:18;63250:26;;63286:71;63354:1;63343:9;63339:17;63330:6;63286:71;:::i;:::-;63367:72;63435:2;63424:9;63420:18;63411:6;63367:72;:::i;:::-;63240:206;;;;;:::o;63452:1579::-;;63911:3;63900:9;63896:19;63888:27;;63925:71;63993:1;63982:9;63978:17;63969:6;63925:71;:::i;:::-;64006:72;64074:2;64063:9;64059:18;64050:6;64006:72;:::i;:::-;64088;64156:2;64145:9;64141:18;64132:6;64088:72;:::i;:::-;64170:68;64234:2;64223:9;64219:18;64210:6;64170:68;:::i;:::-;64248:73;64316:3;64305:9;64301:19;64292:6;64248:73;:::i;:::-;64331;64399:3;64388:9;64384:19;64375:6;64331:73;:::i;:::-;64414;64482:3;64471:9;64467:19;64458:6;64414:73;:::i;:::-;64497;64565:3;64554:9;64550:19;64541:6;64497:73;:::i;:::-;64618:9;64612:4;64608:20;64602:3;64591:9;64587:19;64580:49;64646:75;64716:4;64707:6;64646:75;:::i;:::-;64638:83;;64769:9;64763:4;64759:20;64753:3;64742:9;64738:19;64731:49;64797:75;64867:4;64858:6;64797:75;:::i;:::-;64789:83;;64920:9;64914:4;64910:20;64904:3;64893:9;64889:19;64882:49;64948:76;65019:4;65009:7;64948:76;:::i;:::-;64940:84;;63878:1153;;;;;;;;;;;;;;:::o;65037:278::-;;65103:2;65097:9;65087:19;;65145:4;65137:6;65133:17;65252:6;65240:10;65237:22;65216:18;65204:10;65201:34;65198:62;65195:2;;;65263:13;;:::i;:::-;65195:2;65298:10;65294:2;65287:22;65077:238;;;;:::o;65321:306::-;;65488:18;65480:6;65477:30;65474:2;;;65510:13;;:::i;:::-;65474:2;65555:4;65547:6;65543:17;65535:25;;65615:4;65609;65605:15;65597:23;;65403:224;;;:::o;65633:306::-;;65800:18;65792:6;65789:30;65786:2;;;65822:13;;:::i;:::-;65786:2;65867:4;65859:6;65855:17;65847:25;;65927:4;65921;65917:15;65909:23;;65715:224;;;:::o;65945:326::-;;66096:18;66088:6;66085:30;66082:2;;;66118:13;;:::i;:::-;66082:2;66198:4;66194:9;66187:4;66179:6;66175:17;66171:33;66163:41;;66259:4;66253;66249:15;66241:23;;66011:260;;;:::o;66277:327::-;;66429:18;66421:6;66418:30;66415:2;;;66451:13;;:::i;:::-;66415:2;66531:4;66527:9;66520:4;66512:6;66508:17;66504:33;66496:41;;66592:4;66586;66582:15;66574:23;;66344:260;;;:::o;66610:132::-;;66700:3;66692:11;;66730:4;66725:3;66721:14;66713:22;;66682:60;;;:::o;66748:141::-;;66820:3;66812:11;;66843:3;66840:1;66833:14;66877:4;66874:1;66864:18;66856:26;;66802:87;;;:::o;66895:114::-;;66996:5;66990:12;66980:22;;66969:40;;;:::o;67015:98::-;;67100:5;67094:12;67084:22;;67073:40;;;:::o;67119:99::-;;67205:5;67199:12;67189:22;;67178:40;;;:::o;67224:113::-;;67326:4;67321:3;67317:14;67309:22;;67299:38;;;:::o;67343:184::-;;67476:6;67471:3;67464:19;67516:4;67511:3;67507:14;67492:29;;67454:73;;;;:::o;67533:168::-;;67650:6;67645:3;67638:19;67690:4;67685:3;67681:14;67666:29;;67628:73;;;;:::o;67707:159::-;;67815:6;67810:3;67803:19;67855:4;67850:3;67846:14;67831:29;;67793:73;;;;:::o;67872:169::-;;67990:6;67985:3;67978:19;68030:4;68025:3;68021:14;68006:29;;67968:73;;;;:::o;68047:96::-;;68113:24;68131:5;68113:24;:::i;:::-;68102:35;;68092:51;;;:::o;68149:90::-;;68226:5;68219:13;68212:21;68201:32;;68191:48;;;:::o;68245:77::-;;68311:5;68300:16;;68290:32;;;:::o;68328:149::-;;68404:66;68397:5;68393:78;68382:89;;68372:105;;;:::o;68483:126::-;;68560:42;68553:5;68549:54;68538:65;;68528:81;;;:::o;68615:77::-;;68681:5;68670:16;;68660:32;;;:::o;68698:86::-;;68773:4;68766:5;68762:16;68751:27;;68741:43;;;:::o;68790:154::-;68874:6;68869:3;68864;68851:30;68936:1;68927:6;68922:3;68918:16;68911:27;68841:103;;;:::o;68950:307::-;69018:1;69028:113;69042:6;69039:1;69036:13;69028:113;;;69127:1;69122:3;69118:11;69112:18;69108:1;69103:3;69099:11;69092:39;69064:2;69061:1;69057:10;69052:15;;69028:113;;;69159:6;69156:1;69153:13;69150:2;;;69239:1;69230:6;69225:3;69221:16;69214:27;69150:2;68999:258;;;;:::o;69263:48::-;69296:9;69317:102;;69409:2;69405:7;69400:2;69393:5;69389:14;69385:28;69375:38;;69365:54;;;:::o;69425:106::-;;69518:5;69513:3;69509:15;69488:36;;69478:53;;;:::o;69537:833::-;;69614:4;69596:16;69593:26;69590:2;;;69622:5;;69590:2;69660:1;69657;69654;69639:23;69682:34;69713:1;69707:8;69682:34;:::i;:::-;69743:10;69738:3;69735:19;69725:2;;69758:5;;;69725:2;69793;69787:9;69851:1;69833:16;69829:24;69826:1;69820:4;69805:49;69884:4;69878:11;69983:16;69976:4;69968:6;69964:17;69961:39;69928:18;69920:6;69917:30;69901:113;69898:2;;;70029:5;;;;;69898:2;70075:6;70069:4;70065:17;70111:3;70105:10;70138:18;70130:6;70127:30;70124:2;;;70160:5;;;;;;;70124:2;70208:6;70201:4;70196:3;70192:14;70188:27;70245:16;70239:4;70235:27;70230:3;70227:36;70224:2;;;70266:5;;;;;;;;70224:2;70314:29;70336:6;70314:29;:::i;:::-;70307:4;70302:3;70298:14;70294:50;70290:2;70283:62;70361:3;70354:10;;69580:790;;;;;;;;:::o;70376:122::-;70449:24;70467:5;70449:24;:::i;:::-;70442:5;70439:35;70429:2;;70488:1;70485;70478:12;70429:2;70419:79;:::o;70504:116::-;70574:21;70589:5;70574:21;:::i;:::-;70567:5;70564:32;70554:2;;70610:1;70607;70600:12;70554:2;70544:76;:::o;70626:122::-;70699:24;70717:5;70699:24;:::i;:::-;70692:5;70689:35;70679:2;;70738:1;70735;70728:12;70679:2;70669:79;:::o;70754:120::-;70826:23;70843:5;70826:23;:::i;:::-;70819:5;70816:34;70806:2;;70864:1;70861;70854:12;70806:2;70796:78;:::o;70880:122::-;70953:24;70971:5;70953:24;:::i;:::-;70946:5;70943:35;70933:2;;70992:1;70989;70982:12;70933:2;70923:79;:::o;71008:118::-;71079:22;71095:5;71079:22;:::i;:::-;71072:5;71069:33;71059:2;;71116:1;71113;71106:12;71059:2;71049:77;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "REGISTERED_CONSUMER()": "78e5c592", + "REGISTERED_DEALER()": "18a50d7e", + "REGISTERED_EMISSIONS_AUDITOR()": "76ce4755", + "REGISTERED_OFFSET_DEALER()": "1ef68ef7", + "REGISTERED_REC_DEALER()": "fcba7948", + "admin()": "f851a440", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "getAvailableAndRetired(address,uint256)": "7f157c9b", + "getIssuer(uint256)": "92089c46", + "getNumOfUniqueTokens()": "5ddb368f", + "getRoleAdmin(bytes32)": "248a9ca3", + "getRoleMember(bytes32,uint256)": "9010d07c", + "getRoleMemberCount(bytes32)": "ca15c873", + "getRoles(address)": "ce6ccfaf", + "getTokenDetails(uint256)": "c1e03728", + "getTokenRetiredAmount(address,uint256)": "a0d975a7", + "getTokenType(uint256)": "76aed2e1", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "initialize(address)": "c4d66de8", + "isApprovedForAll(address,address)": "e985e9c5", + "isConsumerRegistered(address)": "33781a0e", + "isDealerRegistered(address)": "69f7ef44", + "issue(address,uint8,uint256,uint256,uint256,uint256,string,string,string)": "fd0c4a9a", + "issueOnBehalf(address,address,uint8,uint256,uint256,uint256,uint256,string,string,string)": "f000be98", + "limitedMode()": "dba851b0", + "mint(address,uint256,uint256)": "156e29f6", + "registerConsumer(address)": "44b22fdd", + "registerDealer(address,uint8)": "31aa4b20", + "renounceRole(bytes32,address)": "36568abe", + "retire(uint256,uint256)": "293a7f2e", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "setLimitedMode(bool)": "ddc3e6eb", + "setTimelock(address)": "bdacb303", + "supportsInterface(bytes4)": "01ffc9a7", + "transfer(address,uint256,uint256)": "095bcdb6", + "unregisterConsumer(address)": "53dbe982", + "unregisterDealer(address,uint8)": "e2e564f2", + "uri(uint256)": "0e89341c" + } + } + } + } + }, + "errors": [ + { + "component": "general", + "errorCode": "2462", + "formattedMessage": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol:169:5: Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n constructor(address timelock_, address dclm8_, address guardian_) public {\n ^ (Relevant source part starts here and spans across multiple lines).\n", + "message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.", + "severity": "warning", + "sourceLocation": { + "end": 7241, + "file": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "start": 7042 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5574", + "formattedMessage": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol:11:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low \"runs\" value!), turning off revert strings, or using libraries.\ncontract NetEmissionsTokenNetwork is Initializable, ERC1155Upgradeable, AccessControlUpgradeable {\n^ (Relevant source part starts here and spans across multiple lines).\n", + "message": "Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low \"runs\" value!), turning off revert strings, or using libraries.", + "severity": "warning", + "sourceLocation": { + "end": 21995, + "file": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol", + "start": 485 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5574", + "formattedMessage": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol:14:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low \"runs\" value!), turning off revert strings, or using libraries.\ncontract NetEmissionsTokenNetworkV2 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable {\n^ (Relevant source part starts here and spans across multiple lines).\n", + "message": "Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low \"runs\" value!), turning off revert strings, or using libraries.", + "severity": "warning", + "sourceLocation": { + "end": 22152, + "file": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol", + "start": 602 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 307 + ], + "AddressUpgradeable": [ + 2272 + ], + "ContextUpgradeable": [ + 2317 + ], + "EnumerableSetUpgradeable": [ + 2859 + ], + "Initializable": [ + 815 + ] + }, + "id": 308, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:0" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol", + "file": "../utils/EnumerableSetUpgradeable.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 308, + "sourceUnit": 2860, + "src": "66:47:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "file": "../utils/AddressUpgradeable.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 308, + "sourceUnit": 2273, + "src": "114:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 308, + "sourceUnit": 2318, + "src": "156:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "../proxy/Initializable.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 308, + "sourceUnit": 816, + "src": "198:36:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 7, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "1559:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 8, + "nodeType": "InheritanceSpecifier", + "src": "1559:13:0" + }, + { + "baseName": { + "id": 9, + "name": "ContextUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2317, + "src": "1574:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContextUpgradeable_$2317", + "typeString": "contract ContextUpgradeable" + } + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "1574:18:0" + } + ], + "contractDependencies": [ + 815, + 2317 + ], + "contractKind": "contract", + "documentation": { + "id": 6, + "nodeType": "StructuredDocumentation", + "src": "236:1276:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it." + }, + "fullyImplemented": true, + "id": 307, + "linearizedBaseContracts": [ + 307, + 2317, + 815 + ], + "name": "AccessControlUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 21, + "nodeType": "Block", + "src": "1652:85:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15, + "name": "__Context_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "1662:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1662:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17, + "nodeType": "ExpressionStatement", + "src": "1662:26:0" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 18, + "name": "__AccessControl_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "1698:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1698:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 20, + "nodeType": "ExpressionStatement", + "src": "1698:32:0" + } + ] + }, + "id": 22, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 13, + "modifierName": { + "id": 12, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "1640:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1640:11:0" + } + ], + "name": "__AccessControl_init", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11, + "nodeType": "ParameterList", + "parameters": [], + "src": "1628:2:0" + }, + "returnParameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:0:0" + }, + "scope": 307, + "src": "1599:138:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 27, + "nodeType": "Block", + "src": "1806:7:0", + "statements": [] + }, + "id": 28, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 25, + "modifierName": { + "id": 24, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "1794:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1794:11:0" + } + ], + "name": "__AccessControl_init_unchained", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [], + "src": "1782:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "1806:0:0" + }, + "scope": 307, + "src": "1743:70:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 31, + "libraryName": { + "id": 29, + "name": "EnumerableSetUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2859, + "src": "1824:24:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSetUpgradeable_$2859", + "typeString": "library EnumerableSetUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "1818:71:0", + "typeName": { + "id": 30, + "name": "EnumerableSetUpgradeable.AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "1853:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + } + }, + { + "id": 34, + "libraryName": { + "id": 32, + "name": "AddressUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2272, + "src": "1900:18:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "1894:37:0", + "typeName": { + "id": 33, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1923:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "canonicalName": "AccessControlUpgradeable.RoleData", + "id": 39, + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "members", + "nodeType": "VariableDeclaration", + "scope": 39, + "src": "1963:43:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 35, + "name": "EnumerableSetUpgradeable.AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "1963:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "adminRole", + "nodeType": "VariableDeclaration", + "scope": 39, + "src": "2016:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 37, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nodeType": "StructDefinition", + "scope": 307, + "src": "1937:103:0", + "visibility": "public" + }, + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "_roles", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2046:44:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "typeName": { + "id": 42, + "keyType": { + "id": 40, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2055:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2046:29:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "valueType": { + "id": 41, + "name": "RoleData", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 39, + "src": "2066:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage_ptr", + "typeString": "struct AccessControlUpgradeable.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 46, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2097:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 44, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2097:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2142:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 47, + "nodeType": "StructuredDocumentation", + "src": "2153:292:0", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._" + }, + "id": 55, + "name": "RoleAdminChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 54, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 55, + "src": "2473:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 48, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2473:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nodeType": "VariableDeclaration", + "scope": 55, + "src": "2495:33:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 50, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nodeType": "VariableDeclaration", + "scope": 55, + "src": "2530:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 52, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2530:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2472:87:0" + }, + "src": "2450:110:0" + }, + { + "anonymous": false, + "documentation": { + "id": 56, + "nodeType": "StructuredDocumentation", + "src": "2566:198:0", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {_setupRole}." + }, + "id": 64, + "name": "RoleGranted", + "nodeType": "EventDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2787:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 57, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2787:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2809:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2809:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2834:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2834:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2786:71:0" + }, + "src": "2769:89:0" + }, + { + "anonymous": false, + "documentation": { + "id": 65, + "nodeType": "StructuredDocumentation", + "src": "2864:275:0", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "id": 73, + "name": "RoleRevoked", + "nodeType": "EventDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "3162:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 66, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3162:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "3184:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3184:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 73, + "src": "3209:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3209:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3161:71:0" + }, + "src": "3144:89:0" + }, + { + "body": { + "id": 91, + "nodeType": "Block", + "src": "3395:62:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 88, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3442:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "baseExpression": { + "id": 83, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "3412:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 85, + "indexExpression": { + "id": 84, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "3419:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3412:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 86, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3412:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage ref" + } + }, + "id": 87, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2721, + "src": "3412:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$2643_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2643_storage_ptr_$", + "typeString": "function (struct EnumerableSetUpgradeable.AddressSet storage pointer,address) view returns (bool)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3412:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 82, + "id": 90, + "nodeType": "Return", + "src": "3405:45:0" + } + ] + }, + "documentation": { + "id": 74, + "nodeType": "StructuredDocumentation", + "src": "3239:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 92, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 79, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 92, + "src": "3337:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 75, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 78, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 92, + "src": "3351:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 77, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3351:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3336:31:0" + }, + "returnParameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 92, + "src": "3389:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 80, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3389:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3388:6:0" + }, + "scope": 307, + "src": "3320:137:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 107, + "nodeType": "Block", + "src": "3697:53:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "baseExpression": { + "id": 100, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "3714:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 102, + "indexExpression": { + "id": 101, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "3721:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3714:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 103, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage ref" + } + }, + "id": 104, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2735, + "src": "3714:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$2643_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$2643_storage_ptr_$", + "typeString": "function (struct EnumerableSetUpgradeable.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3714:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 99, + "id": 106, + "nodeType": "Return", + "src": "3707:36:0" + } + ] + }, + "documentation": { + "id": 93, + "nodeType": "StructuredDocumentation", + "src": "3463:157:0", + "text": " @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role." + }, + "functionSelector": "ca15c873", + "id": 108, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMemberCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 96, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 108, + "src": "3653:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 94, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3653:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3652:14:0" + }, + "returnParameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 108, + "src": "3688:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 97, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3688:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3687:9:0" + }, + "scope": 307, + "src": "3625:125:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 126, + "nodeType": "Block", + "src": "4417:54:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 123, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "4458:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "baseExpression": { + "id": 118, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "4434:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 120, + "indexExpression": { + "id": 119, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "4441:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4434:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 121, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "4434:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage ref" + } + }, + "id": 122, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2761, + "src": "4434:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$2643_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$2643_storage_ptr_$", + "typeString": "function (struct EnumerableSetUpgradeable.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4434:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 117, + "id": 125, + "nodeType": "Return", + "src": "4427:37:0" + } + ] + }, + "documentation": { + "id": 109, + "nodeType": "StructuredDocumentation", + "src": "3756:574:0", + "text": " @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information." + }, + "functionSelector": "9010d07c", + "id": 127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleMember", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "4358:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 110, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "4372:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4372:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4357:29:0" + }, + "returnParameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "4408:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4408:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4407:9:0" + }, + "scope": 307, + "src": "4335:136:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 140, + "nodeType": "Block", + "src": "4718:46:0", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 135, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "4735:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 137, + "indexExpression": { + "id": 136, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "4742:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4735:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 138, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 38, + "src": "4735:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 134, + "id": 139, + "nodeType": "Return", + "src": "4728:29:0" + } + ] + }, + "documentation": { + "id": 128, + "nodeType": "StructuredDocumentation", + "src": "4477:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 141, + "src": "4674:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 129, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4674:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4673:14:0" + }, + "returnParameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 141, + "src": "4709:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 132, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4709:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4708:9:0" + }, + "scope": 307, + "src": "4652:112:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 166, + "nodeType": "Block", + "src": "5079:158:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 151, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "5105:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 153, + "indexExpression": { + "id": 152, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "5112:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5105:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 154, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 38, + "src": "5105:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 155, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5129:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5129:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 150, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5097:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5097:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74", + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5144:49:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811", + "typeString": "literal_string \"AccessControl: sender must be an admin to grant\"" + }, + "value": "AccessControl: sender must be an admin to grant" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811", + "typeString": "literal_string \"AccessControl: sender must be an admin to grant\"" + } + ], + "id": 149, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5089:105:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 160, + "nodeType": "ExpressionStatement", + "src": "5089:105:0" + }, + { + "expression": { + "arguments": [ + { + "id": 162, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "5216:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 163, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "5222:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 161, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "5205:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5205:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 165, + "nodeType": "ExpressionStatement", + "src": "5205:25:0" + } + ] + }, + "documentation": { + "id": 142, + "nodeType": "StructuredDocumentation", + "src": "4770:239:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 167, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 144, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "5033:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 143, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5033:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 146, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "5047:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5047:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5032:31:0" + }, + "returnParameters": { + "id": 148, + "nodeType": "ParameterList", + "parameters": [], + "src": "5079:0:0" + }, + "scope": 307, + "src": "5014:223:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "5537:160:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 177, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "5563:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 179, + "indexExpression": { + "id": 178, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "5570:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5563:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 180, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 38, + "src": "5563:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 181, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5587:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5587:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 176, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5555:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5555:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5602:50:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3", + "typeString": "literal_string \"AccessControl: sender must be an admin to revoke\"" + }, + "value": "AccessControl: sender must be an admin to revoke" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3", + "typeString": "literal_string \"AccessControl: sender must be an admin to revoke\"" + } + ], + "id": 175, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5547:106:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "5547:106:0" + }, + { + "expression": { + "arguments": [ + { + "id": 188, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "5676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 189, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "5682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 187, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "5664:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5664:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 191, + "nodeType": "ExpressionStatement", + "src": "5664:26:0" + } + ] + }, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "5243:223:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 193, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "5491:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 169, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5491:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "5505:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5505:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5490:31:0" + }, + "returnParameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [], + "src": "5537:0:0" + }, + "scope": 307, + "src": "5471:226:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 214, + "nodeType": "Block", + "src": "6256:137:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 202, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 198, + "src": "6274:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 203, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "6285:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6285:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6274:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66", + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6299:49:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" + }, + "value": "AccessControl: can only renounce roles for self" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "typeString": "literal_string \"AccessControl: can only renounce roles for self\"" + } + ], + "id": 201, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6266:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6266:83:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 208, + "nodeType": "ExpressionStatement", + "src": "6266:83:0" + }, + { + "expression": { + "arguments": [ + { + "id": 210, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "6372:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 211, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 198, + "src": "6378:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 209, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "6360:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 213, + "nodeType": "ExpressionStatement", + "src": "6360:26:0" + } + ] + }, + "documentation": { + "id": 194, + "nodeType": "StructuredDocumentation", + "src": "5703:480:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`." + }, + "functionSelector": "36568abe", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 196, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "6210:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 195, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6210:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "6224:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6224:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6209:31:0" + }, + "returnParameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [], + "src": "6256:0:0" + }, + "scope": 307, + "src": "6188:205:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 228, + "nodeType": "Block", + "src": "7026:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 224, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 218, + "src": "7047:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 225, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "7053:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 223, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "7036:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7036:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 227, + "nodeType": "ExpressionStatement", + "src": "7036:25:0" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "6399:554:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====" + }, + "id": 229, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setupRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 229, + "src": "6978:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 217, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6978:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 229, + "src": "6992:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6992:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6977:31:0" + }, + "returnParameters": { + "id": 222, + "nodeType": "ParameterList", + "parameters": [], + "src": "7026:0:0" + }, + "scope": 307, + "src": "6958:110:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 253, + "nodeType": "Block", + "src": "7266:123:0", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 238, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7298:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "baseExpression": { + "id": 239, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "7304:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 241, + "indexExpression": { + "id": 240, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7311:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7304:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 38, + "src": "7304:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 243, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "7328:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 237, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "7281:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7281:57:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 245, + "nodeType": "EmitStatement", + "src": "7276:62:0" + }, + { + "expression": { + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 246, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "7348:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 248, + "indexExpression": { + "id": 247, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7355:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7348:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 249, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 38, + "src": "7348:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 250, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "7373:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "7348:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 252, + "nodeType": "ExpressionStatement", + "src": "7348:34:0" + } + ] + }, + "documentation": { + "id": 230, + "nodeType": "StructuredDocumentation", + "src": "7074:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "7216:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 231, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7216:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "adminRole", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "7230:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 233, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7230:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7215:33:0" + }, + "returnParameters": { + "id": 236, + "nodeType": "ParameterList", + "parameters": [], + "src": "7266:0:0" + }, + "scope": 307, + "src": "7193:196:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 277, + "nodeType": "Block", + "src": "7454:125:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 266, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "7493:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "baseExpression": { + "id": 261, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "7468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "7475:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7468:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "7468:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage ref" + } + }, + "id": 265, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2669, + "src": "7468:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$2643_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2643_storage_ptr_$", + "typeString": "function (struct EnumerableSetUpgradeable.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7468:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 276, + "nodeType": "IfStatement", + "src": "7464:109:0", + "trueBody": { + "id": 275, + "nodeType": "Block", + "src": "7503:70:0", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 269, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "7534:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 270, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "7540:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 271, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "7549:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7549:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 268, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "7522:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7522:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 274, + "nodeType": "EmitStatement", + "src": "7517:45:0" + } + ] + } + } + ] + }, + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "7415:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 255, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7415:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "7429:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7429:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7414:31:0" + }, + "returnParameters": { + "id": 260, + "nodeType": "ParameterList", + "parameters": [], + "src": "7454:0:0" + }, + "scope": 307, + "src": "7395:184:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 301, + "nodeType": "Block", + "src": "7645:128:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "7687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "baseExpression": { + "id": 285, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "7659:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$39_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 287, + "indexExpression": { + "id": 286, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 280, + "src": "7666:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7659:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$39_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 288, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "members", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "7659:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage ref" + } + }, + "id": 289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2695, + "src": "7659:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$2643_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$2643_storage_ptr_$", + "typeString": "function (struct EnumerableSetUpgradeable.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7659:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 300, + "nodeType": "IfStatement", + "src": "7655:112:0", + "trueBody": { + "id": 299, + "nodeType": "Block", + "src": "7697:70:0", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 293, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 280, + "src": "7728:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 294, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "7734:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 295, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "7743:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7743:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 292, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "7716:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7716:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "EmitStatement", + "src": "7711:45:0" + } + ] + } + } + ] + }, + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 280, + "mutability": "mutable", + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "7606:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 279, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7606:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 282, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "7620:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7620:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7605:31:0" + }, + "returnParameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [], + "src": "7645:0:0" + }, + "scope": 307, + "src": "7585:188:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "constant": false, + "id": 306, + "mutability": "mutable", + "name": "__gap", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "7778:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage", + "typeString": "uint256[49]" + }, + "typeName": { + "baseType": { + "id": 303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 305, + "length": { + "hexValue": "3439", + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7786:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "nodeType": "ArrayTypeName", + "src": "7778:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", + "typeString": "uint256[49]" + } + }, + "visibility": "private" + } + ], + "scope": 308, + "src": "1513:6293:0" + } + ], + "src": "33:7774:0" + }, + "id": 0 + }, + "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 2272 + ], + "ERC165Upgradeable": [ + 382 + ], + "IERC165Upgradeable": [ + 394 + ], + "Initializable": [ + 815 + ] + }, + "id": 383, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 309, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:1" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "file": "./IERC165Upgradeable.sol", + "id": 310, + "nodeType": "ImportDirective", + "scope": 383, + "sourceUnit": 395, + "src": "66:34:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "../proxy/Initializable.sol", + "id": 311, + "nodeType": "ImportDirective", + "scope": 383, + "sourceUnit": 816, + "src": "101:36:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 313, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "350:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 314, + "nodeType": "InheritanceSpecifier", + "src": "350:13:1" + }, + { + "baseName": { + "id": 315, + "name": "IERC165Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 394, + "src": "365:18:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165Upgradeable_$394", + "typeString": "contract IERC165Upgradeable" + } + }, + "id": 316, + "nodeType": "InheritanceSpecifier", + "src": "365:18:1" + } + ], + "contractDependencies": [ + 394, + 815 + ], + "contractKind": "contract", + "documentation": { + "id": 312, + "nodeType": "StructuredDocumentation", + "src": "139:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 382, + "linearizedBaseContracts": [ + 382, + 394, + 815 + ], + "name": "ERC165Upgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 319, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "473:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 317, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "473:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "520:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 320, + "nodeType": "StructuredDocumentation", + "src": "537:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 324, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "624:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 323, + "keyType": { + "id": 321, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "632:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "624:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 322, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 332, + "nodeType": "Block", + "src": "729:42:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 329, + "name": "__ERC165_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "739:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "739:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 331, + "nodeType": "ExpressionStatement", + "src": "739:25:1" + } + ] + }, + "id": 333, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 327, + "modifierName": { + "id": 326, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "717:11:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "717:11:1" + } + ], + "name": "__ERC165_init", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [], + "src": "705:2:1" + }, + "returnParameters": { + "id": 328, + "nodeType": "ParameterList", + "parameters": [], + "src": "729:0:1" + }, + "scope": 382, + "src": "683:88:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 342, + "nodeType": "Block", + "src": "833:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 339, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "998:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 338, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "979:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "979:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 341, + "nodeType": "ExpressionStatement", + "src": "979:40:1" + } + ] + }, + "id": 343, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 336, + "modifierName": { + "id": 335, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "821:11:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "821:11:1" + } + ], + "name": "__ERC165_init_unchained", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [], + "src": "809:2:1" + }, + "returnParameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [], + "src": "833:0:1" + }, + "scope": 382, + "src": "777:249:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 393 + ], + "body": { + "id": 356, + "nodeType": "Block", + "src": "1267:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 352, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "1284:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 354, + "indexExpression": { + "id": 353, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "1305:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1284:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 351, + "id": 355, + "nodeType": "Return", + "src": "1277:40:1" + } + ] + }, + "documentation": { + "id": 344, + "nodeType": "StructuredDocumentation", + "src": "1032:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 348, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1243:8:1" + }, + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "1203:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 345, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1203:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1202:20:1" + }, + "returnParameters": { + "id": 351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "1261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 349, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1260:6:1" + }, + "scope": 382, + "src": "1176:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 376, + "nodeType": "Block", + "src": "1783:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 364, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1801:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1816:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "1801:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1828:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1793:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1793:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "1793:66:1" + }, + { + "expression": { + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 370, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "1869:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 372, + "indexExpression": { + "id": 371, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1890:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1869:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1905:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1869:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 375, + "nodeType": "ExpressionStatement", + "src": "1869:40:1" + } + ] + }, + "documentation": { + "id": 358, + "nodeType": "StructuredDocumentation", + "src": "1330:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 377, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 360, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "1746:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 359, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1746:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1745:20:1" + }, + "returnParameters": { + "id": 362, + "nodeType": "ParameterList", + "parameters": [], + "src": "1783:0:1" + }, + "scope": 382, + "src": "1718:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "__gap", + "nodeType": "VariableDeclaration", + "scope": 382, + "src": "1921:25:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage", + "typeString": "uint256[49]" + }, + "typeName": { + "baseType": { + "id": 378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1921:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 380, + "length": { + "hexValue": "3439", + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1929:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "nodeType": "ArrayTypeName", + "src": "1921:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$49_storage_ptr", + "typeString": "uint256[49]" + } + }, + "visibility": "private" + } + ], + "scope": 383, + "src": "311:1638:1" + } + ], + "src": "33:1917:1" + }, + "id": 1 + }, + "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "exportedSymbols": { + "IERC165Upgradeable": [ + 394 + ] + }, + "id": 395, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 384, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 385, + "nodeType": "StructuredDocumentation", + "src": "66:279:2", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 394, + "linearizedBaseContracts": [ + 394 + ], + "name": "IERC165Upgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 386, + "nodeType": "StructuredDocumentation", + "src": "381:340:2", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 393, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "753:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 387, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "753:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "752:20:2" + }, + "returnParameters": { + "id": 392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 391, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "796:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 390, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "796:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "795:6:2" + }, + "scope": 394, + "src": "726:76:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 395, + "src": "346:458:2" + } + ], + "src": "33:772:2" + }, + "id": 2 + }, + "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "exportedSymbols": { + "SafeMathUpgradeable": [ + 749 + ] + }, + "id": 750, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 396, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 397, + "nodeType": "StructuredDocumentation", + "src": "66:563:3", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 749, + "linearizedBaseContracts": [ + 749 + ], + "name": "SafeMathUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "876:98:3", + "statements": [ + { + "assignments": [ + 410 + ], + "declarations": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 427, + "src": "886:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 414, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 411, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "898:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 412, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 402, + "src": "902:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "898:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "886:17:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 415, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 410, + "src": "917:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 416, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "921:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "917:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 422, + "nodeType": "IfStatement", + "src": "913:28:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "932:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "939:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 420, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "931:10:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 408, + "id": 421, + "nodeType": "Return", + "src": "924:17:3" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "959:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 424, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 410, + "src": "965:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 425, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "958:9:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 408, + "id": 426, + "nodeType": "Return", + "src": "951:16:3" + } + ] + }, + "documentation": { + "id": 398, + "nodeType": "StructuredDocumentation", + "src": "664:131:3", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "816:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 402, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "827:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "827:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "815:22:3" + }, + "returnParameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "861:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 404, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "861:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "867:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "867:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "860:15:3" + }, + "scope": 749, + "src": "800:174:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 454, + "nodeType": "Block", + "src": "1196:75:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 440, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "1210:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 441, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "1214:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1210:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 447, + "nodeType": "IfStatement", + "src": "1206:28:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1225:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 445, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1224:10:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 439, + "id": 446, + "nodeType": "Return", + "src": "1217:17:3" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1252:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 449, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "1258:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 450, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "1262:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1258:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 452, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1251:13:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 439, + "id": 453, + "nodeType": "Return", + "src": "1244:20:3" + } + ] + }, + "documentation": { + "id": 429, + "nodeType": "StructuredDocumentation", + "src": "980:135:3", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 455, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 431, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 455, + "src": "1136:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1136:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 433, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 455, + "src": "1147:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1135:22:3" + }, + "returnParameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 455, + "src": "1181:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 435, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1181:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 455, + "src": "1187:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1187:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1180:15:3" + }, + "scope": 749, + "src": "1120:151:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 495, + "nodeType": "Block", + "src": "1495:359:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 467, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "1727:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1732:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1727:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 474, + "nodeType": "IfStatement", + "src": "1723:28:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1743:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1749:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 472, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1742:9:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 466, + "id": 473, + "nodeType": "Return", + "src": "1735:16:3" + } + }, + { + "assignments": [ + 476 + ], + "declarations": [ + { + "constant": false, + "id": 476, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 495, + "src": "1761:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1761:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 480, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 477, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "1773:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 478, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "1777:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1773:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1761:17:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 481, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "1792:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 482, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "1796:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1792:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 484, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "1801:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1792:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 490, + "nodeType": "IfStatement", + "src": "1788:33:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1819:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 488, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1811:10:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 466, + "id": 489, + "nodeType": "Return", + "src": "1804:17:3" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1839:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 492, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "1845:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 493, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1838:9:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 466, + "id": 494, + "nodeType": "Return", + "src": "1831:16:3" + } + ] + }, + "documentation": { + "id": 456, + "nodeType": "StructuredDocumentation", + "src": "1277:137:3", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "1435:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1435:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "1446:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1446:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1434:22:3" + }, + "returnParameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "1480:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 462, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1480:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "1486:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1486:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1479:15:3" + }, + "scope": 749, + "src": "1419:435:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 522, + "nodeType": "Block", + "src": "2079:76:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 508, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "2093:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2098:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2093:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 515, + "nodeType": "IfStatement", + "src": "2089:29:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2109:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2116:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 513, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2108:10:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 507, + "id": 514, + "nodeType": "Return", + "src": "2101:17:3" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2136:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 517, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 499, + "src": "2142:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 518, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 501, + "src": "2146:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2142:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 520, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2135:13:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 507, + "id": 521, + "nodeType": "Return", + "src": "2128:20:3" + } + ] + }, + "documentation": { + "id": 497, + "nodeType": "StructuredDocumentation", + "src": "1860:138:3", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 523, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 499, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "2019:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 498, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 501, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "2030:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2030:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2018:22:3" + }, + "returnParameters": { + "id": 507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "2064:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2064:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 506, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 523, + "src": "2070:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2063:15:3" + }, + "scope": 749, + "src": "2003:152:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 549, + "nodeType": "Block", + "src": "2390:76:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 535, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 528, + "src": "2404:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2409:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2404:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 542, + "nodeType": "IfStatement", + "src": "2400:29:3", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2420:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2427:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 540, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2419:10:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 534, + "id": 541, + "nodeType": "Return", + "src": "2412:17:3" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2447:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 544, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 526, + "src": "2453:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 545, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 528, + "src": "2457:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2453:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 547, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2446:13:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 534, + "id": 548, + "nodeType": "Return", + "src": "2439:20:3" + } + ] + }, + "documentation": { + "id": 524, + "nodeType": "StructuredDocumentation", + "src": "2161:148:3", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 550, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "2330:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2330:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 528, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "2341:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2341:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2329:22:3" + }, + "returnParameters": { + "id": 534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "2375:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 530, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2375:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 533, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "2381:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2381:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2374:15:3" + }, + "scope": 749, + "src": "2314:152:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 575, + "nodeType": "Block", + "src": "2768:108:3", + "statements": [ + { + "assignments": [ + 561 + ], + "declarations": [ + { + "constant": false, + "id": 561, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 575, + "src": "2778:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2778:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 565, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 562, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "2790:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 563, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "2794:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2790:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2778:17:3" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 567, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2813:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 568, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "2818:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2813:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2821:29:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 566, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2805:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:46:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 572, + "nodeType": "ExpressionStatement", + "src": "2805:46:3" + }, + { + "expression": { + "id": 573, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2868:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 559, + "id": 574, + "nodeType": "Return", + "src": "2861:8:3" + } + ] + }, + "documentation": { + "id": 551, + "nodeType": "StructuredDocumentation", + "src": "2472:224:3", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 576, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 553, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "2714:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2714:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 555, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "2725:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2725:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2713:22:3" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "2759:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2759:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2758:9:3" + }, + "scope": 749, + "src": "2701:175:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 597, + "nodeType": "Block", + "src": "3214:88:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 587, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "3232:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 588, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "3237:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3232:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3240:32:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 586, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3224:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3224:49:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 592, + "nodeType": "ExpressionStatement", + "src": "3224:49:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 593, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "3290:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 594, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "3294:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3290:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 585, + "id": 596, + "nodeType": "Return", + "src": "3283:12:3" + } + ] + }, + "documentation": { + "id": 577, + "nodeType": "StructuredDocumentation", + "src": "2882:260:3", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 598, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3160:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3160:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 581, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3171:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3171:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3159:22:3" + }, + "returnParameters": { + "id": 585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3205:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3205:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3204:9:3" + }, + "scope": 749, + "src": "3147:155:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 631, + "nodeType": "Block", + "src": "3616:148:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 608, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "3630:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3635:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3630:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 613, + "nodeType": "IfStatement", + "src": "3626:20:3", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3645:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 607, + "id": 612, + "nodeType": "Return", + "src": "3638:8:3" + } + }, + { + "assignments": [ + 615 + ], + "declarations": [ + { + "constant": false, + "id": 615, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 631, + "src": "3656:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3656:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 619, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 616, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "3668:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 617, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "3672:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3668:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3656:17:3" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 621, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "3691:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 622, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "3695:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3691:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 624, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "3700:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3691:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3703:35:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 620, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3683:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3683:56:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 628, + "nodeType": "ExpressionStatement", + "src": "3683:56:3" + }, + { + "expression": { + "id": 629, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "3756:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 607, + "id": 630, + "nodeType": "Return", + "src": "3749:8:3" + } + ] + }, + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3308:236:3", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 632, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "3562:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3562:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "3573:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3573:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3561:22:3" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 606, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "3607:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3607:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3606:9:3" + }, + "scope": 749, + "src": "3549:215:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 653, + "nodeType": "Block", + "src": "4295:83:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 643, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "4313:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4317:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4313:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4320:28:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 642, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4305:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4305:44:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 648, + "nodeType": "ExpressionStatement", + "src": "4305:44:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4366:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "4370:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4366:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 641, + "id": 652, + "nodeType": "Return", + "src": "4359:12:3" + } + ] + }, + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "3770:453:3", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "4241:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4241:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "4252:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4252:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4240:22:3" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "4286:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4286:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4285:9:3" + }, + "scope": 749, + "src": "4228:150:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 675, + "nodeType": "Block", + "src": "4898:81:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 665, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "4916:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4920:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4916:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4923:26:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 664, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4908:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4908:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 670, + "nodeType": "ExpressionStatement", + "src": "4908:42:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 671, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 657, + "src": "4967:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 672, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "4971:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4967:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 663, + "id": 674, + "nodeType": "Return", + "src": "4960:12:3" + } + ] + }, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "4384:442:3", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 676, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "4844:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4844:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "4855:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4855:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4843:22:3" + }, + "returnParameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "4889:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4889:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4888:9:3" + }, + "scope": 749, + "src": "4831:148:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 699, + "nodeType": "Block", + "src": "5538:68:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 689, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 681, + "src": "5556:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 690, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "5561:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5556:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 692, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 683, + "src": "5564:12:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 688, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5548:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5548:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "ExpressionStatement", + "src": "5548:29:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 695, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "5594:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 696, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 681, + "src": "5598:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5594:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 687, + "id": 698, + "nodeType": "Return", + "src": "5587:12:3" + } + ] + }, + "documentation": { + "id": 677, + "nodeType": "StructuredDocumentation", + "src": "4985:453:3", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 700, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "5456:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5456:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "5467:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5467:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "5478:26:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 682, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5478:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5455:50:3" + }, + "returnParameters": { + "id": 687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "5529:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5529:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5528:9:3" + }, + "scope": 749, + "src": "5443:163:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 723, + "nodeType": "Block", + "src": "6358:67:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 713, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "6376:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6380:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6376:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 716, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 707, + "src": "6383:12:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6368:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6368:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 718, + "nodeType": "ExpressionStatement", + "src": "6368:28:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 719, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "6413:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 720, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "6417:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6413:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 711, + "id": 722, + "nodeType": "Return", + "src": "6406:12:3" + } + ] + }, + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "5612:646:3", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 724, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "6276:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6276:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 705, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "6287:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6287:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 707, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "6298:26:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6298:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6275:50:3" + }, + "returnParameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "6349:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6349:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6348:9:3" + }, + "scope": 749, + "src": "6263:162:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 747, + "nodeType": "Block", + "src": "7166:67:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 737, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "7184:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7188:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7184:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 740, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "7191:12:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 736, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7176:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7176:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 742, + "nodeType": "ExpressionStatement", + "src": "7176:28:3" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 743, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 727, + "src": "7221:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 744, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "7225:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7221:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 735, + "id": 746, + "nodeType": "Return", + "src": "7214:12:3" + } + ] + }, + "documentation": { + "id": 725, + "nodeType": "StructuredDocumentation", + "src": "6431:635:3", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 727, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "7084:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7084:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "7095:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7095:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 731, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "7106:26:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 730, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7106:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7083:50:3" + }, + "returnParameters": { + "id": 735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "7157:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7157:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7156:9:3" + }, + "scope": 749, + "src": "7071:162:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 750, + "src": "630:6605:3" + } + ], + "src": "33:7203:3" + }, + "id": 3 + }, + "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 2272 + ], + "Initializable": [ + 815 + ] + }, + "id": 816, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 751, + "literals": [ + "solidity", + ">=", + "0.4", + ".24", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "79:32:4" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "file": "../utils/AddressUpgradeable.sol", + "id": 752, + "nodeType": "ImportDirective", + "scope": 816, + "sourceUnit": 2273, + "src": "113:41:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 753, + "nodeType": "StructuredDocumentation", + "src": "156:938:4", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity." + }, + "fullyImplemented": true, + "id": 815, + "linearizedBaseContracts": [ + 815 + ], + "name": "Initializable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 754, + "nodeType": "StructuredDocumentation", + "src": "1134:73:4", + "text": " @dev Indicates that the contract has been initialized." + }, + "id": 756, + "mutability": "mutable", + "name": "_initialized", + "nodeType": "VariableDeclaration", + "scope": 815, + "src": "1212:25:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 755, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1212:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 757, + "nodeType": "StructuredDocumentation", + "src": "1244:91:4", + "text": " @dev Indicates that the contract is in the process of being initialized." + }, + "id": 759, + "mutability": "mutable", + "name": "_initializing", + "nodeType": "VariableDeclaration", + "scope": 815, + "src": "1340:26:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 758, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1340:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "1494:368:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 763, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "1512:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 764, + "name": "_isConstructor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 814, + "src": "1529:14:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1529:16:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1512:33:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1549:13:4", + "subExpression": { + "id": 767, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "1550:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1512:50:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1564:48:4", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + }, + "value": "Initializable: contract is already initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759", + "typeString": "literal_string \"Initializable: contract is already initialized\"" + } + ], + "id": 762, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1504:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1504:109:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "1504:109:4" + }, + { + "assignments": [ + 774 + ], + "declarations": [ + { + "constant": false, + "id": 774, + "mutability": "mutable", + "name": "isTopLevelCall", + "nodeType": "VariableDeclaration", + "scope": 797, + "src": "1624:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1624:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 777, + "initialValue": { + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1646:14:4", + "subExpression": { + "id": 775, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "1647:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1624:36:4" + }, + { + "condition": { + "id": 778, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "1674:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 788, + "nodeType": "IfStatement", + "src": "1670:98:4", + "trueBody": { + "id": 787, + "nodeType": "Block", + "src": "1690:78:4", + "statements": [ + { + "expression": { + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 779, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "1704:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1720:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1704:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 782, + "nodeType": "ExpressionStatement", + "src": "1704:20:4" + }, + { + "expression": { + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 783, + "name": "_initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "1738:12:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1753:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1738:19:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 786, + "nodeType": "ExpressionStatement", + "src": "1738:19:4" + } + ] + } + }, + { + "id": 789, + "nodeType": "PlaceholderStatement", + "src": "1778:1:4" + }, + { + "condition": { + "id": 790, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "1794:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 796, + "nodeType": "IfStatement", + "src": "1790:66:4", + "trueBody": { + "id": 795, + "nodeType": "Block", + "src": "1810:46:4", + "statements": [ + { + "expression": { + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 791, + "name": "_initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "1824:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1840:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1824:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "1824:21:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 760, + "nodeType": "StructuredDocumentation", + "src": "1373:93:4", + "text": " @dev Modifier to protect an initializer function from being invoked twice." + }, + "id": 798, + "name": "initializer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 761, + "nodeType": "ParameterList", + "parameters": [], + "src": "1491:2:4" + }, + "src": "1471:391:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "2006:69:4", + "statements": [ + { + "expression": { + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2023:45:4", + "subExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 808, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2062:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + ], + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2054:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2054:7:4", + "typeDescriptions": {} + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2054:13:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 804, + "name": "AddressUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "2024:18:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AddressUpgradeable_$2272_$", + "typeString": "type(library AddressUpgradeable)" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 2048, + "src": "2024:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2024:44:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 803, + "id": 812, + "nodeType": "Return", + "src": "2016:52:4" + } + ] + }, + "documentation": { + "id": 799, + "nodeType": "StructuredDocumentation", + "src": "1868:79:4", + "text": "@dev Returns true if and only if the function is running in the constructor" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isConstructor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:2:4" + }, + "returnParameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "2000:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2000:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1999:6:4" + }, + "scope": 815, + "src": "1952:123:4", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 816, + "src": "1095:982:4" + } + ], + "src": "79:1999:4" + }, + "id": 4 + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 2272 + ], + "ContextUpgradeable": [ + 2317 + ], + "ERC1155Upgradeable": [ + 1850 + ], + "ERC165Upgradeable": [ + 382 + ], + "IERC1155MetadataURIUpgradeable": [ + 1865 + ], + "IERC1155ReceiverUpgradeable": [ + 1906 + ], + "IERC1155Upgradeable": [ + 2028 + ], + "IERC165Upgradeable": [ + 394 + ], + "Initializable": [ + 815 + ], + "SafeMathUpgradeable": [ + 749 + ] + }, + "id": 1851, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 817, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:5" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol", + "file": "./IERC1155Upgradeable.sol", + "id": 818, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 2029, + "src": "66:35:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol", + "file": "./IERC1155MetadataURIUpgradeable.sol", + "id": 819, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 1866, + "src": "102:46:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol", + "file": "./IERC1155ReceiverUpgradeable.sol", + "id": 820, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 1907, + "src": "149:43:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../../utils/ContextUpgradeable.sol", + "id": 821, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 2318, + "src": "193:44:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/ERC165Upgradeable.sol", + "file": "../../introspection/ERC165Upgradeable.sol", + "id": 822, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 383, + "src": "238:51:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "file": "../../math/SafeMathUpgradeable.sol", + "id": 823, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 750, + "src": "290:44:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "file": "../../utils/AddressUpgradeable.sol", + "id": 824, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 2273, + "src": "335:44:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "../../proxy/Initializable.sol", + "id": 825, + "nodeType": "ImportDirective", + "scope": 1851, + "sourceUnit": 816, + "src": "380:39:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 827, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "670:13:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 828, + "nodeType": "InheritanceSpecifier", + "src": "670:13:5" + }, + { + "baseName": { + "id": 829, + "name": "ContextUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2317, + "src": "685:18:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContextUpgradeable_$2317", + "typeString": "contract ContextUpgradeable" + } + }, + "id": 830, + "nodeType": "InheritanceSpecifier", + "src": "685:18:5" + }, + { + "baseName": { + "id": 831, + "name": "ERC165Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 382, + "src": "705:17:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165Upgradeable_$382", + "typeString": "contract ERC165Upgradeable" + } + }, + "id": 832, + "nodeType": "InheritanceSpecifier", + "src": "705:17:5" + }, + { + "baseName": { + "id": 833, + "name": "IERC1155Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2028, + "src": "724:19:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Upgradeable_$2028", + "typeString": "contract IERC1155Upgradeable" + } + }, + "id": 834, + "nodeType": "InheritanceSpecifier", + "src": "724:19:5" + }, + { + "baseName": { + "id": 835, + "name": "IERC1155MetadataURIUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1865, + "src": "745:30:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155MetadataURIUpgradeable_$1865", + "typeString": "contract IERC1155MetadataURIUpgradeable" + } + }, + "id": 836, + "nodeType": "InheritanceSpecifier", + "src": "745:30:5" + } + ], + "contractDependencies": [ + 382, + 394, + 815, + 1865, + 2028, + 2317 + ], + "contractKind": "contract", + "documentation": { + "id": 826, + "nodeType": "StructuredDocumentation", + "src": "421:217:5", + "text": " @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155\n _Available since v3.1._" + }, + "fullyImplemented": true, + "id": 1850, + "linearizedBaseContracts": [ + 1850, + 1865, + 2028, + 382, + 394, + 2317, + 815 + ], + "name": "ERC1155Upgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 839, + "libraryName": { + "id": 837, + "name": "SafeMathUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 749, + "src": "788:19:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMathUpgradeable_$749", + "typeString": "library SafeMathUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "782:38:5", + "typeName": { + "id": 838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "812:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 842, + "libraryName": { + "id": 840, + "name": "AddressUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2272, + "src": "831:18:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "825:37:5", + "typeName": { + "id": 841, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "854:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": false, + "id": 848, + "mutability": "mutable", + "name": "_balances", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "917:66:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "typeName": { + "id": 847, + "keyType": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "917:48:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "valueType": { + "id": 846, + "keyType": { + "id": 844, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "945:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "937:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "956:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 854, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "1040:72:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 853, + "keyType": { + "id": 849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1049:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1040:45:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 852, + "keyType": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1068:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1060:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 851, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1079:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 856, + "mutability": "mutable", + "name": "_uri", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "1233:19:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 855, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1233:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 859, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC1155", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "1925:58:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 857, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1925:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30786439623637613236", + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1973:10:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_3652614694_by_1", + "typeString": "int_const 3652614694" + }, + "value": "0xd9b67a26" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 862, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC1155_METADATA_URI", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "2064:71:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 860, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2064:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783065383933343163", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2125:10:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_243872796_by_1", + "typeString": "int_const 243872796" + }, + "value": "0x0e89341c" + }, + "visibility": "private" + }, + { + "body": { + "id": 880, + "nodeType": "Block", + "src": "2250:118:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 870, + "name": "__Context_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "2260:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2260:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 872, + "nodeType": "ExpressionStatement", + "src": "2260:26:5" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 873, + "name": "__ERC165_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "2296:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2296:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 875, + "nodeType": "ExpressionStatement", + "src": "2296:25:5" + }, + { + "expression": { + "arguments": [ + { + "id": 877, + "name": "uri_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "2356:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 876, + "name": "__ERC1155_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2331:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2331:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 879, + "nodeType": "ExpressionStatement", + "src": "2331:30:5" + } + ] + }, + "documentation": { + "id": 863, + "nodeType": "StructuredDocumentation", + "src": "2142:38:5", + "text": " @dev See {_setURI}." + }, + "id": 881, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 868, + "modifierName": { + "id": 867, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "2238:11:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2238:11:5" + } + ], + "name": "__ERC1155_init", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 865, + "mutability": "mutable", + "name": "uri_", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "2209:18:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 864, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2209:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2208:20:5" + }, + "returnParameters": { + "id": 869, + "nodeType": "ParameterList", + "parameters": [], + "src": "2250:0:5" + }, + "scope": 1850, + "src": "2185:183:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 900, + "nodeType": "Block", + "src": "2449:314:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 889, + "name": "uri_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 883, + "src": "2467:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 888, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "2459:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2459:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "2459:13:5" + }, + { + "expression": { + "arguments": [ + { + "id": 893, + "name": "_INTERFACE_ID_ERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "2580:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 892, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "2561:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2561:41:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 895, + "nodeType": "ExpressionStatement", + "src": "2561:41:5" + }, + { + "expression": { + "arguments": [ + { + "id": 897, + "name": "_INTERFACE_ID_ERC1155_METADATA_URI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "2721:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 896, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "2702:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2702:54:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 899, + "nodeType": "ExpressionStatement", + "src": "2702:54:5" + } + ] + }, + "id": 901, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 886, + "modifierName": { + "id": 885, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "2437:11:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2437:11:5" + } + ], + "name": "__ERC1155_init_unchained", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 883, + "mutability": "mutable", + "name": "uri_", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "2408:18:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 882, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2408:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2407:20:5" + }, + "returnParameters": { + "id": 887, + "nodeType": "ParameterList", + "parameters": [], + "src": "2449:0:5" + }, + "scope": 1850, + "src": "2374:389:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1864 + ], + "body": { + "id": 912, + "nodeType": "Block", + "src": "3239:28:5", + "statements": [ + { + "expression": { + "id": 910, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 856, + "src": "3256:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 909, + "id": 911, + "nodeType": "Return", + "src": "3249:11:5" + } + ] + }, + "documentation": { + "id": 902, + "nodeType": "StructuredDocumentation", + "src": "2769:388:5", + "text": " @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 913, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uri", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 906, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3206:8:5" + }, + "parameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 913, + "src": "3175:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3175:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3174:9:5" + }, + "returnParameters": { + "id": 909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 913, + "src": "3224:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 907, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3224:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3223:15:5" + }, + "scope": 1850, + "src": "3162:105:5", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "baseFunctions": [ + 1966 + ], + "body": { + "id": 940, + "nodeType": "Block", + "src": "3504:133:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 925, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 916, + "src": "3522:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3533:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3533:7:5", + "typeDescriptions": {} + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3533:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3522:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3545:45:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9", + "typeString": "literal_string \"ERC1155: balance query for the zero address\"" + }, + "value": "ERC1155: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9", + "typeString": "literal_string \"ERC1155: balance query for the zero address\"" + } + ], + "id": 924, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3514:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3514:77:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 933, + "nodeType": "ExpressionStatement", + "src": "3514:77:5" + }, + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 934, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "3608:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 936, + "indexExpression": { + "id": 935, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 918, + "src": "3618:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3608:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 938, + "indexExpression": { + "id": 937, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 916, + "src": "3622:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3608:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 923, + "id": 939, + "nodeType": "Return", + "src": "3601:29:5" + } + ] + }, + "documentation": { + "id": 914, + "nodeType": "StructuredDocumentation", + "src": "3273:131:5", + "text": " @dev See {IERC1155-balanceOf}.\n Requirements:\n - `account` cannot be the zero address." + }, + "functionSelector": "00fdd58e", + "id": 941, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 920, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3477:8:5" + }, + "parameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 916, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "3428:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3428:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 918, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "3445:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3445:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3427:29:5" + }, + "returnParameters": { + "id": 923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 922, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "3495:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3495:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3494:9:5" + }, + "scope": 1850, + "src": "3409:228:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1979 + ], + "body": { + "id": 1004, + "nodeType": "Block", + "src": "3989:335:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 956, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "4007:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4007:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 958, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "4026:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4026:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4007:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368", + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4038:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5", + "typeString": "literal_string \"ERC1155: accounts and ids length mismatch\"" + }, + "value": "ERC1155: accounts and ids length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5", + "typeString": "literal_string \"ERC1155: accounts and ids length mismatch\"" + } + ], + "id": 955, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3999:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3999:83:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "3999:83:5" + }, + { + "assignments": [ + 968 + ], + "declarations": [ + { + "constant": false, + "id": 968, + "mutability": "mutable", + "name": "batchBalances", + "nodeType": "VariableDeclaration", + "scope": 1004, + "src": "4093:30:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4093:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 967, + "nodeType": "ArrayTypeName", + "src": "4093:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 975, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 972, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "4140:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4140:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4126:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4130:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 970, + "nodeType": "ArrayTypeName", + "src": "4130:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4126:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:63:5" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "4213:74:5", + "statements": [ + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 987, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 968, + "src": "4227:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 989, + "indexExpression": { + "id": 988, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4241:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4227:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 991, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "4256:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 993, + "indexExpression": { + "id": 992, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4265:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4256:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 994, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "4269:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4273:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4269:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 990, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "4246:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4246:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4227:49:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "4227:49:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 980, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4187:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 981, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "4191:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4191:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4187:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1001, + "initializationExpression": { + "assignments": [ + 977 + ], + "declarations": [ + { + "constant": false, + "id": 977, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "4172:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4172:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 979, + "initialValue": { + "hexValue": "30", + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4184:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4172:13:5" + }, + "loopExpression": { + "expression": { + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "4208:3:5", + "subExpression": { + "id": 984, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4210:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 986, + "nodeType": "ExpressionStatement", + "src": "4208:3:5" + }, + "nodeType": "ForStatement", + "src": "4167:120:5" + }, + { + "expression": { + "id": 1002, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 968, + "src": "4304:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 954, + "id": 1003, + "nodeType": "Return", + "src": "4297:20:5" + } + ] + }, + "documentation": { + "id": 942, + "nodeType": "StructuredDocumentation", + "src": "3643:146:5", + "text": " @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 1005, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 950, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3941:8:5" + }, + "parameters": { + "id": 949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 945, + "mutability": "mutable", + "name": "accounts", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "3827:25:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3827:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 944, + "nodeType": "ArrayTypeName", + "src": "3827:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 948, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "3862:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3862:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 947, + "nodeType": "ArrayTypeName", + "src": "3862:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3817:71:5" + }, + "returnParameters": { + "id": 954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 953, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "3967:16:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3967:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 952, + "nodeType": "ArrayTypeName", + "src": "3967:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "3966:18:5" + }, + "scope": 1850, + "src": "3794:530:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1987 + ], + "body": { + "id": 1038, + "nodeType": "Block", + "src": "4476:222:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1015, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "4494:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4494:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1017, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "4510:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4494:24:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4520:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2", + "typeString": "literal_string \"ERC1155: setting approval status for self\"" + }, + "value": "ERC1155: setting approval status for self" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2", + "typeString": "literal_string \"ERC1155: setting approval status for self\"" + } + ], + "id": 1014, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4486:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4486:78:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1021, + "nodeType": "ExpressionStatement", + "src": "4486:78:5" + }, + { + "expression": { + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1022, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "4575:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1026, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1023, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "4594:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4594:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4575:32:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1027, + "indexExpression": { + "id": 1025, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "4608:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4575:42:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1028, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "4620:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4575:53:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "4575:53:5" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1032, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "4658:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4658:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1034, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "4672:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1010, + "src": "4682:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1031, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "4643:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4643:48:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1037, + "nodeType": "EmitStatement", + "src": "4638:53:5" + } + ] + }, + "documentation": { + "id": 1006, + "nodeType": "StructuredDocumentation", + "src": "4330:57:5", + "text": " @dev See {IERC1155-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 1039, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1012, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4467:8:5" + }, + "parameters": { + "id": 1011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1008, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1039, + "src": "4419:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4419:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1010, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 1039, + "src": "4437:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1009, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4437:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4418:33:5" + }, + "returnParameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [], + "src": "4476:0:5" + }, + "scope": 1850, + "src": "4392:306:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1997 + ], + "body": { + "id": 1056, + "nodeType": "Block", + "src": "4870:61:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1050, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "4887:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1052, + "indexExpression": { + "id": 1051, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "4906:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4887:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1054, + "indexExpression": { + "id": 1053, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "4915:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4887:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1049, + "id": 1055, + "nodeType": "Return", + "src": "4880:44:5" + } + ] + }, + "documentation": { + "id": 1040, + "nodeType": "StructuredDocumentation", + "src": "4704:56:5", + "text": " @dev See {IERC1155-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1046, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "4846:8:5" + }, + "parameters": { + "id": 1045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1042, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "4791:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1041, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4791:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1044, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "4808:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4808:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4790:35:5" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "4864:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1047, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4864:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4863:6:5" + }, + "scope": 1850, + "src": "4765:166:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2011 + ], + "body": { + "id": 1162, + "nodeType": "Block", + "src": "5195:700:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1073, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5213:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5227:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5219:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5219:7:5", + "typeDescriptions": {} + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5219:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5213:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:39:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d", + "typeString": "literal_string \"ERC1155: transfer to the zero address\"" + }, + "value": "ERC1155: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d", + "typeString": "literal_string \"ERC1155: transfer to the zero address\"" + } + ], + "id": 1072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5205:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5205:66:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "5205:66:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1083, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5302:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1084, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5310:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5310:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5302:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1088, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1089, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5349:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5349:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1087, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "5326:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5326:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5302:60:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5376:43:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a", + "typeString": "literal_string \"ERC1155: caller is not owner nor approved\"" + }, + "value": "ERC1155: caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a", + "typeString": "literal_string \"ERC1155: caller is not owner nor approved\"" + } + ], + "id": 1082, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5281:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5281:148:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1095, + "nodeType": "ExpressionStatement", + "src": "5281:148:5" + }, + { + "assignments": [ + 1097 + ], + "declarations": [ + { + "constant": false, + "id": 1097, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1162, + "src": "5440:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5440:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1100, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1098, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "5459:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5459:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5440:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1102, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1097, + "src": "5503:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1103, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5513:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1104, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5519:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1106, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5541:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1105, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "5523:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5523:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "arguments": [ + { + "id": 1109, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "5564:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1108, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "5546:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5546:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1111, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "5573:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1101, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "5482:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5482:96:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1113, + "nodeType": "ExpressionStatement", + "src": "5482:96:5" + }, + { + "expression": { + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1114, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "5589:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1117, + "indexExpression": { + "id": 1115, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5599:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5589:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1118, + "indexExpression": { + "id": 1116, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5603:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5589:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1125, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "5635:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572", + "id": 1126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5643:44:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf", + "typeString": "literal_string \"ERC1155: insufficient balance for transfer\"" + }, + "value": "ERC1155: insufficient balance for transfer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf", + "typeString": "literal_string \"ERC1155: insufficient balance for transfer\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1119, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "5611:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1121, + "indexExpression": { + "id": 1120, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5621:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5611:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1123, + "indexExpression": { + "id": 1122, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5625:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5611:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 700, + "src": "5611:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5611:77:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5589:99:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1129, + "nodeType": "ExpressionStatement", + "src": "5589:99:5" + }, + { + "expression": { + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1130, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "5698:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1133, + "indexExpression": { + "id": 1131, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5708:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5698:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1134, + "indexExpression": { + "id": 1132, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5712:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5698:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1141, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "5740:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1135, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "5718:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1137, + "indexExpression": { + "id": 1136, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5728:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5718:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1139, + "indexExpression": { + "id": 1138, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5732:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5718:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "5718:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5718:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5698:49:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1144, + "nodeType": "ExpressionStatement", + "src": "5698:49:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1146, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1097, + "src": "5778:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1147, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5788:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1148, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5794:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1149, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5798:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1150, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "5802:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1145, + "name": "TransferSingle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "5763:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" + } + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5763:46:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1152, + "nodeType": "EmitStatement", + "src": "5758:51:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1154, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1097, + "src": "5851:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1155, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "5861:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "5867:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1157, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "5871:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1158, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "5875:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1159, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "5883:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1153, + "name": "_doSafeTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "5820:30:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,bytes memory)" + } + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5820:68:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1161, + "nodeType": "ExpressionStatement", + "src": "5820:68:5" + } + ] + }, + "documentation": { + "id": 1058, + "nodeType": "StructuredDocumentation", + "src": "4937:56:5", + "text": " @dev See {IERC1155-safeTransferFrom}." + }, + "functionSelector": "f242432a", + "id": 1163, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1070, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5182:8:5" + }, + "parameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "5033:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1059, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5033:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "5055:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5055:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "5075:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5075:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1066, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "5095:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5095:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "5119:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1067, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5119:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5023:119:5" + }, + "returnParameters": { + "id": 1071, + "nodeType": "ParameterList", + "parameters": [], + "src": "5195:0:5" + }, + "scope": 1850, + "src": "4998:897:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2027 + ], + "body": { + "id": 1300, + "nodeType": "Block", + "src": "6189:962:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1181, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "6207:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6207:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1183, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "6221:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6221:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6207:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6237:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + }, + "value": "ERC1155: ids and amounts length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + } + ], + "id": 1180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6199:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6199:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1188, + "nodeType": "ExpressionStatement", + "src": "6199:81:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1190, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "6298:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6312:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6304:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6304:7:5", + "typeDescriptions": {} + } + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6304:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6298:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6316:39:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d", + "typeString": "literal_string \"ERC1155: transfer to the zero address\"" + }, + "value": "ERC1155: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d", + "typeString": "literal_string \"ERC1155: transfer to the zero address\"" + } + ], + "id": 1189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6290:66:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1198, + "nodeType": "ExpressionStatement", + "src": "6290:66:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1200, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "6387:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1201, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "6395:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6395:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6387:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1205, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "6428:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1206, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "6434:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6434:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1204, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "6411:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6411:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6387:60:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6461:52:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686", + "typeString": "literal_string \"ERC1155: transfer caller is not owner nor approved\"" + }, + "value": "ERC1155: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686", + "typeString": "literal_string \"ERC1155: transfer caller is not owner nor approved\"" + } + ], + "id": 1199, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6366:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6366:157:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1212, + "nodeType": "ExpressionStatement", + "src": "6366:157:5" + }, + { + "assignments": [ + 1214 + ], + "declarations": [ + { + "constant": false, + "id": 1214, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1300, + "src": "6534:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6534:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1217, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1215, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "6553:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6553:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6534:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1219, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "6597:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1220, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "6607:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1221, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "6613:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1222, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "6617:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1223, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "6622:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1224, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "6631:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1218, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "6576:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6576:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1226, + "nodeType": "ExpressionStatement", + "src": "6576:60:5" + }, + { + "body": { + "id": 1281, + "nodeType": "Block", + "src": "6688:308:5", + "statements": [ + { + "assignments": [ + 1239 + ], + "declarations": [ + { + "constant": false, + "id": 1239, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1281, + "src": "6702:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6702:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1243, + "initialValue": { + "baseExpression": { + "id": 1240, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "6715:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1242, + "indexExpression": { + "id": 1241, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "6719:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6715:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6702:19:5" + }, + { + "assignments": [ + 1245 + ], + "declarations": [ + { + "constant": false, + "id": 1245, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1281, + "src": "6735:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6735:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1249, + "initialValue": { + "baseExpression": { + "id": 1246, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "6752:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1248, + "indexExpression": { + "id": 1247, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "6760:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6752:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6735:27:5" + }, + { + "expression": { + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1250, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "6777:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1253, + "indexExpression": { + "id": 1251, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "6787:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6777:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1254, + "indexExpression": { + "id": 1252, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "6791:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6777:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1261, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1245, + "src": "6840:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572", + "id": 1262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6864:44:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf", + "typeString": "literal_string \"ERC1155: insufficient balance for transfer\"" + }, + "value": "ERC1155: insufficient balance for transfer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf", + "typeString": "literal_string \"ERC1155: insufficient balance for transfer\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1255, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "6799:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1257, + "indexExpression": { + "id": 1256, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "6809:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6799:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1259, + "indexExpression": { + "id": 1258, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "6813:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6799:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 700, + "src": "6799:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6799:123:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6777:145:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1265, + "nodeType": "ExpressionStatement", + "src": "6777:145:5" + }, + { + "expression": { + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1266, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "6936:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1269, + "indexExpression": { + "id": 1267, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "6946:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6936:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1270, + "indexExpression": { + "id": 1268, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "6950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1277, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1245, + "src": "6978:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1271, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "6956:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1273, + "indexExpression": { + "id": 1272, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "6966:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6956:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1275, + "indexExpression": { + "id": 1274, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "6970:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6956:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "6956:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6956:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:49:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1280, + "nodeType": "ExpressionStatement", + "src": "6936:49:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1231, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "6667:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1232, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "6671:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6671:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6667:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1282, + "initializationExpression": { + "assignments": [ + 1228 + ], + "declarations": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "6652:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6652:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1230, + "initialValue": { + "hexValue": "30", + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6664:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6652:13:5" + }, + "loopExpression": { + "expression": { + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "6683:3:5", + "subExpression": { + "id": 1235, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "6685:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1237, + "nodeType": "ExpressionStatement", + "src": "6683:3:5" + }, + "nodeType": "ForStatement", + "src": "6647:349:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1284, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "7025:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1285, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "7035:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1286, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "7041:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1287, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "7045:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1288, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "7050:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 1283, + "name": "TransferBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "7011:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 1289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7011:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1290, + "nodeType": "EmitStatement", + "src": "7006:52:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1292, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "7105:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1293, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "7115:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1294, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "7121:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1295, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "7125:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1296, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "7130:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1297, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "7139:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1291, + "name": "_doSafeBatchTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1817, + "src": "7069:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7069:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1299, + "nodeType": "ExpressionStatement", + "src": "7069:75:5" + } + ] + }, + "documentation": { + "id": 1164, + "nodeType": "StructuredDocumentation", + "src": "5901:61:5", + "text": " @dev See {IERC1155-safeBatchTransferFrom}." + }, + "functionSelector": "2eb2c2d6", + "id": 1301, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1178, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6176:8:5" + }, + "parameters": { + "id": 1177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1166, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "6007:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6007:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "6029:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6029:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1171, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "6049:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6049:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1170, + "nodeType": "ArrayTypeName", + "src": "6049:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "6079:24:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1172, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6079:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1173, + "nodeType": "ArrayTypeName", + "src": "6079:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1176, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1301, + "src": "6113:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1175, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6113:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5997:139:5" + }, + "returnParameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [], + "src": "6189:0:5" + }, + "scope": 1850, + "src": "5967:1184:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "8030:30:5", + "statements": [ + { + "expression": { + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1307, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 856, + "src": "8040:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1308, + "name": "newuri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1304, + "src": "8047:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "8040:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1310, + "nodeType": "ExpressionStatement", + "src": "8040:13:5" + } + ] + }, + "documentation": { + "id": 1302, + "nodeType": "StructuredDocumentation", + "src": "7157:812:5", + "text": " @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the amounts in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events." + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1304, + "mutability": "mutable", + "name": "newuri", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "7991:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1303, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7991:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7990:22:5" + }, + "returnParameters": { + "id": 1306, + "nodeType": "ParameterList", + "parameters": [], + "src": "8030:0:5" + }, + "scope": 1850, + "src": "7974:86:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1393, + "nodeType": "Block", + "src": "8544:476:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1325, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8581:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8573:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8573:7:5", + "typeDescriptions": {} + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8573:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8562:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8585:35:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2", + "typeString": "literal_string \"ERC1155: mint to the zero address\"" + }, + "value": "ERC1155: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2", + "typeString": "literal_string \"ERC1155: mint to the zero address\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8554:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8554:67:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1333, + "nodeType": "ExpressionStatement", + "src": "8554:67:5" + }, + { + "assignments": [ + 1335 + ], + "declarations": [ + { + "constant": false, + "id": 1335, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1393, + "src": "8632:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8632:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1338, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1336, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "8651:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8651:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8632:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1340, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "8695:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8713:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8705:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8705:7:5", + "typeDescriptions": {} + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8705:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1345, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8717:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1347, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "8744:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1346, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "8726:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8726:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "arguments": [ + { + "id": 1350, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "8767:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1349, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "8749:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8749:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1352, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "8776:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1339, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "8674:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8674:107:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1354, + "nodeType": "ExpressionStatement", + "src": "8674:107:5" + }, + { + "expression": { + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1355, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "8792:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1358, + "indexExpression": { + "id": 1356, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "8802:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8792:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1359, + "indexExpression": { + "id": 1357, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8806:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8792:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1366, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "8844:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1360, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "8817:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1362, + "indexExpression": { + "id": 1361, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "8827:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8817:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1364, + "indexExpression": { + "id": 1363, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8831:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8817:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "8817:26:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8817:34:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8792:59:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "8792:59:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1371, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "8881:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8899:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8891:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8891:7:5", + "typeDescriptions": {} + } + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8891:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1376, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1377, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "8912:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1378, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "8916:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1370, + "name": "TransferSingle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "8866:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8866:57:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1380, + "nodeType": "EmitStatement", + "src": "8861:62:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1382, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "8965:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8983:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8975:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8975:7:5", + "typeDescriptions": {} + } + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8975:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1387, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "8987:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1388, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "8996:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1389, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "9000:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1390, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "9008:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1381, + "name": "_doSafeTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "8934:30:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,bytes memory)" + } + }, + "id": 1391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8934:79:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1392, + "nodeType": "ExpressionStatement", + "src": "8934:79:5" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "8066:377:5", + "text": " @dev Creates `amount` tokens of token type `id`, and assigns them to `account`.\n Emits a {TransferSingle} event.\n Requirements:\n - `account` cannot be the zero address.\n - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "id": 1394, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "8463:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8463:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "8480:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "8492:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1318, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8492:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1321, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1394, + "src": "8508:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1320, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8508:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8462:64:5" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [], + "src": "8544:0:5" + }, + "scope": 1850, + "src": "8448:572:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1501, + "nodeType": "Block", + "src": "9481:584:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1409, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "9499:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9513:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9505:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9505:7:5", + "typeDescriptions": {} + } + }, + "id": 1413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9505:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9499:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a206d696e7420746f20746865207a65726f2061646472657373", + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9517:35:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2", + "typeString": "literal_string \"ERC1155: mint to the zero address\"" + }, + "value": "ERC1155: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2", + "typeString": "literal_string \"ERC1155: mint to the zero address\"" + } + ], + "id": 1408, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9491:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9491:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1417, + "nodeType": "ExpressionStatement", + "src": "9491:62:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1419, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9571:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9571:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1421, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "9585:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9585:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9571:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368", + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9601:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + }, + "value": "ERC1155: ids and amounts length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + } + ], + "id": 1418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9563:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9563:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1426, + "nodeType": "ExpressionStatement", + "src": "9563:81:5" + }, + { + "assignments": [ + 1428 + ], + "declarations": [ + { + "constant": false, + "id": 1428, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1501, + "src": "9655:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9655:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1431, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1429, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "9674:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9674:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9655:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1433, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1428, + "src": "9718:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9736:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9728:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1434, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9728:7:5", + "typeDescriptions": {} + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9728:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1438, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "9740:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1439, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9744:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1440, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "9749:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1441, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "9758:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1432, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "9697:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9697:66:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1443, + "nodeType": "ExpressionStatement", + "src": "9697:66:5" + }, + { + "body": { + "id": 1476, + "nodeType": "Block", + "src": "9812:86:5", + "statements": [ + { + "expression": { + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1455, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "9826:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1460, + "indexExpression": { + "baseExpression": { + "id": 1456, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9836:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1458, + "indexExpression": { + "id": 1457, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "9840:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9836:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9826:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1461, + "indexExpression": { + "id": 1459, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "9844:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9826:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "baseExpression": { + "id": 1466, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "9865:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1470, + "indexExpression": { + "baseExpression": { + "id": 1467, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9875:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1469, + "indexExpression": { + "id": 1468, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "9879:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9875:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9865:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1472, + "indexExpression": { + "id": 1471, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "9883:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9865:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1462, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "9850:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1464, + "indexExpression": { + "id": 1463, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "9858:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9850:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "9850:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9850:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9826:61:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1475, + "nodeType": "ExpressionStatement", + "src": "9826:61:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1448, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "9791:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1449, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9795:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9795:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9791:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1477, + "initializationExpression": { + "assignments": [ + 1445 + ], + "declarations": [ + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1477, + "src": "9779:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1444, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9779:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1447, + "initialValue": { + "hexValue": "30", + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9788:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9779:10:5" + }, + "loopExpression": { + "expression": { + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9807:3:5", + "subExpression": { + "id": 1452, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "9807:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1454, + "nodeType": "ExpressionStatement", + "src": "9807:3:5" + }, + "nodeType": "ForStatement", + "src": "9774:124:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1479, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1428, + "src": "9927:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9945:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9937:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9937:7:5", + "typeDescriptions": {} + } + }, + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9937:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1484, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "9949:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1485, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "9953:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1486, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "9958:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 1478, + "name": "TransferBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "9913:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9913:53:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1488, + "nodeType": "EmitStatement", + "src": "9908:58:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1490, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1428, + "src": "10013:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10031:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10023:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10023:7:5", + "typeDescriptions": {} + } + }, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10023:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1495, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1397, + "src": "10035:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1496, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "10039:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1497, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "10044:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1498, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "10053:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1489, + "name": "_doSafeBatchTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1817, + "src": "9977:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9977:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1500, + "nodeType": "ExpressionStatement", + "src": "9977:81:5" + } + ] + }, + "documentation": { + "id": 1395, + "nodeType": "StructuredDocumentation", + "src": "9026:334:5", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Requirements:\n - `ids` and `amounts` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "id": 1502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintBatch", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "9385:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9385:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "9397:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9397:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1399, + "nodeType": "ArrayTypeName", + "src": "9397:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "9419:24:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9419:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1402, + "nodeType": "ArrayTypeName", + "src": "9419:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1502, + "src": "9445:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9445:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9384:79:5" + }, + "returnParameters": { + "id": 1407, + "nodeType": "ParameterList", + "parameters": [], + "src": "9481:0:5" + }, + "scope": 1850, + "src": "9365:700:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1570, + "nodeType": "Block", + "src": "10391:461:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1513, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "10409:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10428:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10420:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10420:7:5", + "typeDescriptions": {} + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10420:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10409:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10432:37:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a", + "typeString": "literal_string \"ERC1155: burn from the zero address\"" + }, + "value": "ERC1155: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a", + "typeString": "literal_string \"ERC1155: burn from the zero address\"" + } + ], + "id": 1512, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10401:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10401:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1521, + "nodeType": "ExpressionStatement", + "src": "10401:69:5" + }, + { + "assignments": [ + 1523 + ], + "declarations": [ + { + "constant": false, + "id": 1523, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1570, + "src": "10481:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10481:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1526, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1524, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "10500:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10500:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10481:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1528, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "10544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1529, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "10554:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10571:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10563:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10563:7:5", + "typeDescriptions": {} + } + }, + "id": 1533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10563:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1535, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1507, + "src": "10593:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1534, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "10575:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10575:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "arguments": [ + { + "id": 1538, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "10616:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1537, + "name": "_asSingletonArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1845, + "src": "10598:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10598:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10625:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1527, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "10523:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10523:105:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1542, + "nodeType": "ExpressionStatement", + "src": "10523:105:5" + }, + { + "expression": { + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1543, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "10639:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1546, + "indexExpression": { + "id": 1544, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1507, + "src": "10649:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10639:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1547, + "indexExpression": { + "id": 1545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "10653:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10639:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1554, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "10704:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10724:38:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685", + "typeString": "literal_string \"ERC1155: burn amount exceeds balance\"" + }, + "value": "ERC1155: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685", + "typeString": "literal_string \"ERC1155: burn amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1548, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "10664:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1507, + "src": "10674:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10664:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1552, + "indexExpression": { + "id": 1551, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "10678:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10664:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 700, + "src": "10664:26:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10664:108:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10639:133:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1558, + "nodeType": "ExpressionStatement", + "src": "10639:133:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1560, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "10803:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1561, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1505, + "src": "10813:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10830:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10822:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10822:7:5", + "typeDescriptions": {} + } + }, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10822:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1566, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1507, + "src": "10834:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1567, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "10838:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1559, + "name": "TransferSingle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1925, + "src": "10788:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10788:57:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1569, + "nodeType": "EmitStatement", + "src": "10783:62:5" + } + ] + }, + "documentation": { + "id": 1503, + "nodeType": "StructuredDocumentation", + "src": "10071:238:5", + "text": " @dev Destroys `amount` tokens of token type `id` from `account`\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens of token type `id`." + }, + "id": 1571, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1505, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1571, + "src": "10329:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10329:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1507, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1571, + "src": "10346:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10346:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1571, + "src": "10358:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10358:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10328:45:5" + }, + "returnParameters": { + "id": 1511, + "nodeType": "ParameterList", + "parameters": [], + "src": "10391:0:5" + }, + "scope": 1850, + "src": "10314:538:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1665, + "nodeType": "Block", + "src": "11148:603:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1584, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "11166:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11185:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11177:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11177:7:5", + "typeDescriptions": {} + } + }, + "id": 1588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11177:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11166:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11189:37:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a", + "typeString": "literal_string \"ERC1155: burn from the zero address\"" + }, + "value": "ERC1155: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a", + "typeString": "literal_string \"ERC1155: burn from the zero address\"" + } + ], + "id": 1583, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11158:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11158:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1592, + "nodeType": "ExpressionStatement", + "src": "11158:69:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1594, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11245:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11245:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1596, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "11259:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11259:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11245:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368", + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11275:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + }, + "value": "ERC1155: ids and amounts length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807", + "typeString": "literal_string \"ERC1155: ids and amounts length mismatch\"" + } + ], + "id": 1593, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11237:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11237:81:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1601, + "nodeType": "ExpressionStatement", + "src": "11237:81:5" + }, + { + "assignments": [ + 1603 + ], + "declarations": [ + { + "constant": false, + "id": 1603, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1665, + "src": "11329:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11329:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1606, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1604, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "11348:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11348:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11329:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1608, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "11392:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1609, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "11402:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11419:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11411:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11411:7:5", + "typeDescriptions": {} + } + }, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11411:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1614, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11423:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1615, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "11428:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11437:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1607, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "11371:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11371:69:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1618, + "nodeType": "ExpressionStatement", + "src": "11371:69:5" + }, + { + "body": { + "id": 1652, + "nodeType": "Block", + "src": "11489:182:5", + "statements": [ + { + "expression": { + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1630, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "11503:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1635, + "indexExpression": { + "baseExpression": { + "id": 1631, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11513:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1633, + "indexExpression": { + "id": 1632, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "11517:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11513:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11503:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1636, + "indexExpression": { + "id": 1634, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "11521:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11503:26:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1645, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "11580:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1647, + "indexExpression": { + "id": 1646, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "11588:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11580:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 1648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11608:38:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685", + "typeString": "literal_string \"ERC1155: burn amount exceeds balance\"" + }, + "value": "ERC1155: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685", + "typeString": "literal_string \"ERC1155: burn amount exceeds balance\"" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 1637, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "11532:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 1641, + "indexExpression": { + "baseExpression": { + "id": 1638, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11542:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1640, + "indexExpression": { + "id": 1639, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "11546:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11542:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11532:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1643, + "indexExpression": { + "id": 1642, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "11550:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11532:26:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 700, + "src": "11532:30:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11532:128:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11503:157:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1651, + "nodeType": "ExpressionStatement", + "src": "11503:157:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1623, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "11468:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1624, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11472:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11472:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11468:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1653, + "initializationExpression": { + "assignments": [ + 1620 + ], + "declarations": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1653, + "src": "11456:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1619, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11456:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1622, + "initialValue": { + "hexValue": "30", + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11465:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11456:10:5" + }, + "loopExpression": { + "expression": { + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11484:3:5", + "subExpression": { + "id": 1627, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "11484:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "11484:3:5" + }, + "nodeType": "ForStatement", + "src": "11451:220:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1655, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "11700:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1656, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "11710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11727:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11719:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11719:7:5", + "typeDescriptions": {} + } + }, + "id": 1660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11719:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1661, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "11731:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1662, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1580, + "src": "11736:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 1654, + "name": "TransferBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "11686:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11686:58:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1664, + "nodeType": "EmitStatement", + "src": "11681:63:5" + } + ] + }, + "documentation": { + "id": 1572, + "nodeType": "StructuredDocumentation", + "src": "10858:183:5", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Requirements:\n - `ids` and `amounts` must have the same length." + }, + "id": 1666, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnBatch", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1574, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1666, + "src": "11066:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11066:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1577, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1666, + "src": "11083:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1575, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1576, + "nodeType": "ArrayTypeName", + "src": "11083:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1580, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1666, + "src": "11105:24:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11105:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1579, + "nodeType": "ArrayTypeName", + "src": "11105:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "11065:65:5" + }, + "returnParameters": { + "id": 1582, + "nodeType": "ParameterList", + "parameters": [], + "src": "11148:0:5" + }, + "scope": 1850, + "src": "11046:705:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "12917:3:5", + "statements": [] + }, + "documentation": { + "id": 1667, + "nodeType": "StructuredDocumentation", + "src": "11757:923:5", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning, as well as batched variants.\n The same hook is called on both single and batched variants. For single\n transfers, the length of the `id` and `amount` arrays will be 1.\n Calling conditions (for each `id` and `amount` pair):\n - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n of token type `id` will be transferred to `to`.\n - When `from` is zero, `amount` tokens of token type `id` will be minted\n for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens of token type `id`\n will be burned.\n - `from` and `to` are never both zero.\n - `ids` and `amounts` have the same, non-zero length.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12724:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12724:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1671, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12750:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12750:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12772:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12772:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1676, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12792:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12792:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1675, + "nodeType": "ArrayTypeName", + "src": "12792:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1679, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12822:24:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12822:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1678, + "nodeType": "ArrayTypeName", + "src": "12822:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1681, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "12856:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1680, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12856:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "12714:165:5" + }, + "returnParameters": { + "id": 1683, + "nodeType": "ParameterList", + "parameters": [], + "src": "12917:0:5" + }, + "scope": 1850, + "src": "12685:235:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1749, + "nodeType": "Block", + "src": "13131:558:5", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1700, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "13145:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 2048, + "src": "13145:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13145:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1748, + "nodeType": "IfStatement", + "src": "13141:542:5", + "trueBody": { + "id": 1747, + "nodeType": "Block", + "src": "13162:521:5", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1729, + "nodeType": "Block", + "src": "13290:199:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1716, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "13312:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 1718, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "13352:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1717, + "name": "IERC1155ReceiverUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13324:27:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$1906_$", + "typeString": "type(contract IERC1155ReceiverUpgradeable)" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13324:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155ReceiverUpgradeable_$1906", + "typeString": "contract IERC1155ReceiverUpgradeable" + } + }, + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1887, + "src": "13324:49:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "13324:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "13312:70:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1728, + "nodeType": "IfStatement", + "src": "13308:167:5", + "trueBody": { + "id": 1727, + "nodeType": "Block", + "src": "13384:91:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13413:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503", + "typeString": "literal_string \"ERC1155: ERC1155Receiver rejected tokens\"" + }, + "value": "ERC1155: ERC1155Receiver rejected tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503", + "typeString": "literal_string \"ERC1155: ERC1155Receiver rejected tokens\"" + } + ], + "id": 1723, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "13406:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13406:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1726, + "nodeType": "ExpressionStatement", + "src": "13406:50:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1730, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "13273:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1713, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "13273:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "13272:17:5" + }, + "src": "13264:225:5" + }, + { + "block": { + "id": 1738, + "nodeType": "Block", + "src": "13524:47:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1735, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1732, + "src": "13549:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1734, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "13542:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13542:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1737, + "nodeType": "ExpressionStatement", + "src": "13542:14:5" + } + ] + }, + "errorName": "Error", + "id": 1739, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1732, + "mutability": "mutable", + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 1739, + "src": "13502:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1731, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "13502:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "13501:22:5" + }, + "src": "13490:81:5" + }, + { + "block": { + "id": 1744, + "nodeType": "Block", + "src": "13578:95:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572", + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13603:54:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed", + "typeString": "literal_string \"ERC1155: transfer to non ERC1155Receiver implementer\"" + }, + "value": "ERC1155: transfer to non ERC1155Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed", + "typeString": "literal_string \"ERC1155: transfer to non ERC1155Receiver implementer\"" + } + ], + "id": 1740, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "13596:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13596:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1743, + "nodeType": "ExpressionStatement", + "src": "13596:62:5" + } + ] + }, + "errorName": "", + "id": 1745, + "nodeType": "TryCatchClause", + "src": "13572:101:5" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1707, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "13230:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1708, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "13240:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1709, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "13246:2:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1710, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1695, + "src": "13250:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1711, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1697, + "src": "13258:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1704, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "13208:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1703, + "name": "IERC1155ReceiverUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13180:27:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$1906_$", + "typeString": "type(contract IERC1155ReceiverUpgradeable)" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13180:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155ReceiverUpgradeable_$1906", + "typeString": "contract IERC1155ReceiverUpgradeable" + } + }, + "id": 1706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1887, + "src": "13180:49:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13180:83:5", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1746, + "nodeType": "TryStatement", + "src": "13176:497:5" + } + ] + } + } + ] + }, + "id": 1750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeTransferAcceptanceCheck", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "12975:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12975:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "13001:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13001:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1691, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "13023:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13023:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "13043:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1695, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "13063:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1697, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1750, + "src": "13087:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1696, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13087:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "12965:145:5" + }, + "returnParameters": { + "id": 1699, + "nodeType": "ParameterList", + "parameters": [], + "src": "13131:0:5" + }, + "scope": 1850, + "src": "12926:763:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1816, + "nodeType": "Block", + "src": "13925:570:5", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1767, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "13939:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 2048, + "src": "13939:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13939:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1815, + "nodeType": "IfStatement", + "src": "13935:554:5", + "trueBody": { + "id": 1814, + "nodeType": "Block", + "src": "13956:533:5", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1796, + "nodeType": "Block", + "src": "14091:204:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1783, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1781, + "src": "14113:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 1785, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "14153:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1784, + "name": "IERC1155ReceiverUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "14125:27:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$1906_$", + "typeString": "type(contract IERC1155ReceiverUpgradeable)" + } + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14125:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155ReceiverUpgradeable_$1906", + "typeString": "contract IERC1155ReceiverUpgradeable" + } + }, + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1905, + "src": "14125:54:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" + } + }, + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "14125:63:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "14113:75:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1795, + "nodeType": "IfStatement", + "src": "14109:172:5", + "trueBody": { + "id": 1794, + "nodeType": "Block", + "src": "14190:91:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73", + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14219:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503", + "typeString": "literal_string \"ERC1155: ERC1155Receiver rejected tokens\"" + }, + "value": "ERC1155: ERC1155Receiver rejected tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503", + "typeString": "literal_string \"ERC1155: ERC1155Receiver rejected tokens\"" + } + ], + "id": 1790, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "14212:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14212:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1793, + "nodeType": "ExpressionStatement", + "src": "14212:50:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1797, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1781, + "mutability": "mutable", + "name": "response", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "14074:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1780, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "14074:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "14073:17:5" + }, + "src": "14065:230:5" + }, + { + "block": { + "id": 1805, + "nodeType": "Block", + "src": "14330:47:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1802, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1799, + "src": "14355:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1801, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "14348:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14348:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1804, + "nodeType": "ExpressionStatement", + "src": "14348:14:5" + } + ] + }, + "errorName": "Error", + "id": 1806, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1799, + "mutability": "mutable", + "name": "reason", + "nodeType": "VariableDeclaration", + "scope": 1806, + "src": "14308:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1798, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14308:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14307:22:5" + }, + "src": "14296:81:5" + }, + { + "block": { + "id": 1811, + "nodeType": "Block", + "src": "14384:95:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572", + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14409:54:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed", + "typeString": "literal_string \"ERC1155: transfer to non ERC1155Receiver implementer\"" + }, + "value": "ERC1155: transfer to non ERC1155Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed", + "typeString": "literal_string \"ERC1155: transfer to non ERC1155Receiver implementer\"" + } + ], + "id": 1807, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "14402:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14402:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1810, + "nodeType": "ExpressionStatement", + "src": "14402:62:5" + } + ] + }, + "errorName": "", + "id": 1812, + "nodeType": "TryCatchClause", + "src": "14378:101:5" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1774, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "14029:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1775, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "14039:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1776, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "14045:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1777, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "14050:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1778, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1764, + "src": "14059:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1771, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "14002:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1770, + "name": "IERC1155ReceiverUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13974:27:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155ReceiverUpgradeable_$1906_$", + "typeString": "type(contract IERC1155ReceiverUpgradeable)" + } + }, + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13974:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155ReceiverUpgradeable_$1906", + "typeString": "contract IERC1155ReceiverUpgradeable" + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1905, + "src": "13974:54:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13974:90:5", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1813, + "nodeType": "TryStatement", + "src": "13970:509:5" + } + ] + } + } + ] + }, + "id": 1817, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeBatchTransferAcceptanceCheck", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1752, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13749:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13749:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13775:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13775:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13797:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13797:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1759, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13817:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13817:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1758, + "nodeType": "ArrayTypeName", + "src": "13817:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13847:24:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13847:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1761, + "nodeType": "ArrayTypeName", + "src": "13847:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1764, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1817, + "src": "13881:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1763, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13881:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13739:165:5" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [], + "src": "13925:0:5" + }, + "scope": 1850, + "src": "13695:800:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1844, + "nodeType": "Block", + "src": "14585:109:5", + "statements": [ + { + "assignments": [ + 1829 + ], + "declarations": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 1844, + "src": "14595:22:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14595:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1828, + "nodeType": "ArrayTypeName", + "src": "14595:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "arguments": [ + { + "hexValue": "31", + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14634:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "14620:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14624:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1831, + "nodeType": "ArrayTypeName", + "src": "14624:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14620:16:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14595:41:5" + }, + { + "expression": { + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1836, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "14646:5:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1838, + "indexExpression": { + "hexValue": "30", + "id": 1837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14652:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14646:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1839, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1819, + "src": "14657:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14646:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1841, + "nodeType": "ExpressionStatement", + "src": "14646:18:5" + }, + { + "expression": { + "id": 1842, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "14682:5:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 1824, + "id": 1843, + "nodeType": "Return", + "src": "14675:12:5" + } + ] + }, + "id": 1845, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_asSingletonArray", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1819, + "mutability": "mutable", + "name": "element", + "nodeType": "VariableDeclaration", + "scope": 1845, + "src": "14528:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14528:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14527:17:5" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1845, + "src": "14567:16:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14567:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1822, + "nodeType": "ArrayTypeName", + "src": "14567:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "14566:18:5" + }, + "scope": 1850, + "src": "14501:193:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "__gap", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "14699:25:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$47_storage", + "typeString": "uint256[47]" + }, + "typeName": { + "baseType": { + "id": 1846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14699:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1848, + "length": { + "hexValue": "3437", + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14707:2:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "nodeType": "ArrayTypeName", + "src": "14699:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$47_storage_ptr", + "typeString": "uint256[47]" + } + }, + "visibility": "private" + } + ], + "scope": 1851, + "src": "639:14088:5" + } + ], + "src": "33:14695:5" + }, + "id": 5 + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155MetadataURIUpgradeable.sol", + "exportedSymbols": { + "IERC1155MetadataURIUpgradeable": [ + 1865 + ], + "IERC1155Upgradeable": [ + 2028 + ], + "IERC165Upgradeable": [ + 394 + ] + }, + "id": 1866, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1852, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:6" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol", + "file": "./IERC1155Upgradeable.sol", + "id": 1853, + "nodeType": "ImportDirective", + "scope": 1866, + "sourceUnit": 2029, + "src": "66:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1855, + "name": "IERC1155Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2028, + "src": "342:19:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Upgradeable_$2028", + "typeString": "contract IERC1155Upgradeable" + } + }, + "id": 1856, + "nodeType": "InheritanceSpecifier", + "src": "342:19:6" + } + ], + "contractDependencies": [ + 394, + 2028 + ], + "contractKind": "interface", + "documentation": { + "id": 1854, + "nodeType": "StructuredDocumentation", + "src": "103:194:6", + "text": " @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\n _Available since v3.1._" + }, + "fullyImplemented": false, + "id": 1865, + "linearizedBaseContracts": [ + 1865, + 2028, + 394 + ], + "name": "IERC1155MetadataURIUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1857, + "nodeType": "StructuredDocumentation", + "src": "368:192:6", + "text": " @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 1864, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uri", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1859, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "578:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "578:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "577:12:6" + }, + "returnParameters": { + "id": 1863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1862, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1864, + "src": "613:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1861, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "613:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "612:15:6" + }, + "scope": 1865, + "src": "565:63:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1866, + "src": "298:332:6" + } + ], + "src": "33:598:6" + }, + "id": 6 + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155ReceiverUpgradeable.sol", + "exportedSymbols": { + "IERC1155ReceiverUpgradeable": [ + 1906 + ], + "IERC165Upgradeable": [ + 394 + ] + }, + "id": 1907, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1867, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:7" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "file": "../../introspection/IERC165Upgradeable.sol", + "id": 1868, + "nodeType": "ImportDirective", + "scope": 1907, + "sourceUnit": 395, + "src": "66:52:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1870, + "name": "IERC165Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 394, + "src": "196:18:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165Upgradeable_$394", + "typeString": "contract IERC165Upgradeable" + } + }, + "id": 1871, + "nodeType": "InheritanceSpecifier", + "src": "196:18:7" + } + ], + "contractDependencies": [ + 394 + ], + "contractKind": "interface", + "documentation": { + "id": 1869, + "nodeType": "StructuredDocumentation", + "src": "120:34:7", + "text": " _Available since v3.1._" + }, + "fullyImplemented": false, + "id": 1906, + "linearizedBaseContracts": [ + 1906, + 394 + ], + "name": "IERC1155ReceiverUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1872, + "nodeType": "StructuredDocumentation", + "src": "222:816:7", + "text": "@dev Handles the receipt of a single ERC1155 token type. This function is\ncalled at the end of a `safeTransferFrom` after the balance has been updated.\nTo accept the transfer, this must return\n`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n(i.e. 0xf23a6e61, or its own function selector).\n@param operator The address which initiated the transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param id The ID of the token being transferred\n@param value The amount of tokens being transferred\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed" + }, + "functionSelector": "f23a6e61", + "id": 1887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1079:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1079:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1876, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1105:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1105:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1878, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1127:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1127:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1880, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1147:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1882, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1170:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1881, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1170:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1069:126:7" + }, + "returnParameters": { + "id": 1886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1887, + "src": "1229:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1884, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1229:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1228:8:7" + }, + "scope": 1906, + "src": "1043:194:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1888, + "nodeType": "StructuredDocumentation", + "src": "1243:977:7", + "text": "@dev Handles the receipt of a multiple ERC1155 token types. This function\nis called at the end of a `safeBatchTransferFrom` after the balances have\nbeen updated. To accept the transfer(s), this must return\n`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n(i.e. 0xbc197c81, or its own function selector).\n@param operator The address which initiated the batch transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param ids An array containing ids of each token being transferred (order and length must match values array)\n@param values An array containing amounts of each token being transferred (order and length must match ids array)\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed" + }, + "functionSelector": "bc197c81", + "id": 1905, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155BatchReceived", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1890, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2266:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1889, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2266:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2292:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2292:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1895, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2314:22:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2314:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1894, + "nodeType": "ArrayTypeName", + "src": "2314:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1898, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2346:25:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2346:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1897, + "nodeType": "ArrayTypeName", + "src": "2346:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1900, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2381:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1899, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2381:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2256:150:7" + }, + "returnParameters": { + "id": 1904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1905, + "src": "2440:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1902, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2440:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2439:8:7" + }, + "scope": 1906, + "src": "2225:223:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1907, + "src": "155:2295:7" + } + ], + "src": "33:2418:7" + }, + "id": 7 + }, + "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol", + "exportedSymbols": { + "IERC1155Upgradeable": [ + 2028 + ], + "IERC165Upgradeable": [ + 394 + ] + }, + "id": 2029, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1908, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:8" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/introspection/IERC165Upgradeable.sol", + "file": "../../introspection/IERC165Upgradeable.sol", + "id": 1909, + "nodeType": "ImportDirective", + "scope": 2029, + "sourceUnit": 395, + "src": "66:52:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1911, + "name": "IERC165Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 394, + "src": "319:18:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165Upgradeable_$394", + "typeString": "contract IERC165Upgradeable" + } + }, + "id": 1912, + "nodeType": "InheritanceSpecifier", + "src": "319:18:8" + } + ], + "contractDependencies": [ + 394 + ], + "contractKind": "interface", + "documentation": { + "id": 1910, + "nodeType": "StructuredDocumentation", + "src": "120:165:8", + "text": " @dev Required interface of an ERC1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[EIP].\n _Available since v3.1._" + }, + "fullyImplemented": false, + "id": 2028, + "linearizedBaseContracts": [ + 2028, + 394 + ], + "name": "IERC1155Upgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1913, + "nodeType": "StructuredDocumentation", + "src": "344:121:8", + "text": " @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`." + }, + "id": 1925, + "name": "TransferSingle", + "nodeType": "EventDefinition", + "parameters": { + "id": 1924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1915, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "491:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1914, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "491:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1917, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "517:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "517:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1919, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "539:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1921, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "559:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "559:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1923, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1925, + "src": "571:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "490:95:8" + }, + "src": "470:116:8" + }, + { + "anonymous": false, + "documentation": { + "id": 1926, + "nodeType": "StructuredDocumentation", + "src": "592:144:8", + "text": " @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers." + }, + "id": 1940, + "name": "TransferBatch", + "nodeType": "EventDefinition", + "parameters": { + "id": 1939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1928, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1940, + "src": "761:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "761:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1930, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1940, + "src": "787:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "787:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1932, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1940, + "src": "809:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "809:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "indexed": false, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1940, + "src": "829:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "829:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1934, + "nodeType": "ArrayTypeName", + "src": "829:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1938, + "indexed": false, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 1940, + "src": "844:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "844:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1937, + "nodeType": "ArrayTypeName", + "src": "844:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "760:101:8" + }, + "src": "741:121:8" + }, + { + "anonymous": false, + "documentation": { + "id": 1941, + "nodeType": "StructuredDocumentation", + "src": "868:147:8", + "text": " @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`." + }, + "id": 1949, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 1948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1943, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1949, + "src": "1041:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1942, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1041:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1945, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1949, + "src": "1066:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1066:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1947, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 1949, + "src": "1092:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1946, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1092:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1040:66:8" + }, + "src": "1020:87:8" + }, + { + "anonymous": false, + "documentation": { + "id": 1950, + "nodeType": "StructuredDocumentation", + "src": "1113:343:8", + "text": " @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}." + }, + "id": 1956, + "name": "URI", + "nodeType": "EventDefinition", + "parameters": { + "id": 1955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1952, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1956, + "src": "1471:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1471:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1954, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1956, + "src": "1485:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1485:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1470:34:8" + }, + "src": "1461:44:8" + }, + { + "documentation": { + "id": 1957, + "nodeType": "StructuredDocumentation", + "src": "1511:173:8", + "text": " @dev Returns the amount of tokens of token type `id` owned by `account`.\n Requirements:\n - `account` cannot be the zero address." + }, + "functionSelector": "00fdd58e", + "id": 1966, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "1708:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1708:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "1725:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1707:29:8" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "1760:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1760:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1759:9:8" + }, + "scope": 2028, + "src": "1689:80:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1967, + "nodeType": "StructuredDocumentation", + "src": "1775:188:8", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 1979, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1970, + "mutability": "mutable", + "name": "accounts", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "1992:27:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1992:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1969, + "nodeType": "ArrayTypeName", + "src": "1992:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1973, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "2021:22:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1971, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2021:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1972, + "nodeType": "ArrayTypeName", + "src": "2021:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1991:53:8" + }, + "returnParameters": { + "id": 1978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1977, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "2068:16:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1976, + "nodeType": "ArrayTypeName", + "src": "2068:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2067:18:8" + }, + "scope": 2028, + "src": "1968:118:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1980, + "nodeType": "StructuredDocumentation", + "src": "2092:248:8", + "text": " @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the caller." + }, + "functionSelector": "a22cb465", + "id": 1987, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1982, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "2372:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1981, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2372:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1984, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 1987, + "src": "2390:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1983, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2390:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2371:33:8" + }, + "returnParameters": { + "id": 1986, + "nodeType": "ParameterList", + "parameters": [], + "src": "2413:0:8" + }, + "scope": 2028, + "src": "2345:69:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1988, + "nodeType": "StructuredDocumentation", + "src": "2420:135:8", + "text": " @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1997, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "2586:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2586:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1992, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "2603:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2603:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2585:35:8" + }, + "returnParameters": { + "id": 1996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1995, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "2644:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1994, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2644:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2643:6:8" + }, + "scope": 2028, + "src": "2560:90:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1998, + "nodeType": "StructuredDocumentation", + "src": "2656:559:8", + "text": " @dev Transfers `amount` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `amount`.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "functionSelector": "f242432a", + "id": 2011, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2011, + "src": "3246:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1999, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3246:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2002, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2011, + "src": "3260:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2001, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3260:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2004, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 2011, + "src": "3272:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3272:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2011, + "src": "3284:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3284:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2008, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2011, + "src": "3300:19:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2007, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3300:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3245:75:8" + }, + "returnParameters": { + "id": 2010, + "nodeType": "ParameterList", + "parameters": [], + "src": "3329:0:8" + }, + "scope": 2028, + "src": "3220:110:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2012, + "nodeType": "StructuredDocumentation", + "src": "3336:390:8", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `amounts` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "functionSelector": "2eb2c2d6", + "id": 2027, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2014, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2027, + "src": "3762:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2013, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2016, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2027, + "src": "3776:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3776:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 2027, + "src": "3788:22:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3788:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2018, + "nodeType": "ArrayTypeName", + "src": "3788:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2022, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 2027, + "src": "3812:26:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3812:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2021, + "nodeType": "ArrayTypeName", + "src": "3812:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2024, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2027, + "src": "3840:19:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2023, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3840:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3761:99:8" + }, + "returnParameters": { + "id": 2026, + "nodeType": "ParameterList", + "parameters": [], + "src": "3869:0:8" + }, + "scope": 2028, + "src": "3731:139:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2029, + "src": "286:3586:8" + } + ], + "src": "33:3840:8" + }, + "id": 8 + }, + "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 2272 + ] + }, + "id": 2273, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2030, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2031, + "nodeType": "StructuredDocumentation", + "src": "66:67:9", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 2272, + "linearizedBaseContracts": [ + 2272 + ], + "name": "AddressUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2047, + "nodeType": "Block", + "src": "803:347:9", + "statements": [ + { + "assignments": [ + 2040 + ], + "declarations": [ + { + "constant": false, + "id": 2040, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 2047, + "src": "1000:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1000:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2041, + "nodeType": "VariableDeclarationStatement", + "src": "1000:12:9" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1087:32:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1089:28:9", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "1109:7:9" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "1097:11:9" + }, + "nodeType": "YulFunctionCall", + "src": "1097:20:9" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1089:4:9" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 2034, + "isOffset": false, + "isSlot": false, + "src": "1109:7:9", + "valueSize": 1 + }, + { + "declaration": 2040, + "isOffset": false, + "isSlot": false, + "src": "1089:4:9", + "valueSize": 1 + } + ], + "id": 2042, + "nodeType": "InlineAssembly", + "src": "1078:41:9" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2043, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2040, + "src": "1135:4:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1142:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1135:8:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2038, + "id": 2046, + "nodeType": "Return", + "src": "1128:15:9" + } + ] + }, + "documentation": { + "id": 2032, + "nodeType": "StructuredDocumentation", + "src": "167:565:9", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 2048, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2034, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "757:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "757:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "756:17:9" + }, + "returnParameters": { + "id": 2038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2037, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "797:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2036, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "797:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "796:6:9" + }, + "scope": 2272, + "src": "737:413:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2081, + "nodeType": "Block", + "src": "2138:320:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2059, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2164:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + ], + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2156:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2057, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2156:7:9", + "typeDescriptions": {} + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:13:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2156:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2062, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "2181:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2156:31:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 2064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2189:31:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 2056, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2148:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2148:73:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2066, + "nodeType": "ExpressionStatement", + "src": "2148:73:9" + }, + { + "assignments": [ + 2068, + null + ], + "declarations": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2081, + "src": "2310:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2310:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2075, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 2073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2360:2:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 2069, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "2328:9:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2328:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2071, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "2351:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2328:31:9", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:35:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2309:54:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2077, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2068, + "src": "2381:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 2078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2390:60:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 2076, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2373:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2373:78:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2080, + "nodeType": "ExpressionStatement", + "src": "2373:78:9" + } + ] + }, + "documentation": { + "id": 2049, + "nodeType": "StructuredDocumentation", + "src": "1156:906:9", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 2082, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2051, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 2082, + "src": "2086:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2086:15:9", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2053, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2082, + "src": "2113:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2113:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2085:43:9" + }, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [], + "src": "2138:0:9" + }, + "scope": 2272, + "src": "2067:391:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2098, + "nodeType": "Block", + "src": "3288:82:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2093, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2085, + "src": "3316:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2094, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2087, + "src": "3324:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3330:32:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 2092, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2099, + 2119 + ], + "referencedDeclaration": 2119, + "src": "3303:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3303:60:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2091, + "id": 2097, + "nodeType": "Return", + "src": "3296:67:9" + } + ] + }, + "documentation": { + "id": 2083, + "nodeType": "StructuredDocumentation", + "src": "2464:730:9", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 2099, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2085, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2099, + "src": "3221:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2084, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3221:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2099, + "src": "3237:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2086, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3237:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3220:35:9" + }, + "returnParameters": { + "id": 2091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2090, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2099, + "src": "3274:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2089, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3274:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3273:14:9" + }, + "scope": 2272, + "src": "3199:171:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2118, + "nodeType": "Block", + "src": "3709:76:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2112, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2102, + "src": "3748:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2113, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2104, + "src": "3756:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3762:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 2115, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2106, + "src": "3765:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2111, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2139, + 2189 + ], + "referencedDeclaration": 2189, + "src": "3726:21:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3726:52:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2110, + "id": 2117, + "nodeType": "Return", + "src": "3719:59:9" + } + ] + }, + "documentation": { + "id": 2100, + "nodeType": "StructuredDocumentation", + "src": "3376:211:9", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2102, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2119, + "src": "3614:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2104, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2119, + "src": "3630:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2103, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3630:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2106, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2119, + "src": "3649:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2105, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3649:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3613:63:9" + }, + "returnParameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2119, + "src": "3695:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2108, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3695:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3694:14:9" + }, + "scope": 2272, + "src": "3592:193:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2138, + "nodeType": "Block", + "src": "4260:111:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2132, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2122, + "src": "4299:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2133, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4307:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2134, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2126, + "src": "4313:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4320:43:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 2131, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2139, + 2189 + ], + "referencedDeclaration": 2189, + "src": "4277:21:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 2136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4277:87:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2130, + "id": 2137, + "nodeType": "Return", + "src": "4270:94:9" + } + ] + }, + "documentation": { + "id": 2120, + "nodeType": "StructuredDocumentation", + "src": "3791:351:9", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 2139, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2122, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "4178:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4178:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "4194:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2123, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4194:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2126, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "4213:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4213:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4177:50:9" + }, + "returnParameters": { + "id": 2130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2129, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2139, + "src": "4246:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2128, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4246:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4245:14:9" + }, + "scope": 2272, + "src": "4147:224:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2188, + "nodeType": "Block", + "src": "4760:382:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2156, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4786:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddressUpgradeable_$2272", + "typeString": "library AddressUpgradeable" + } + ], + "id": 2155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4778:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2154, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4778:7:9", + "typeDescriptions": {} + } + }, + "id": 2157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4778:13:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "4778:21:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2146, + "src": "4803:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4778:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4810:40:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 2153, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4770:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4770:81:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2163, + "nodeType": "ExpressionStatement", + "src": "4770:81:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2166, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "4880:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2165, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "4869:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4869:18:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4889:31:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 2164, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4861:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4861:60:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2170, + "nodeType": "ExpressionStatement", + "src": "4861:60:9" + }, + { + "assignments": [ + 2172, + 2174 + ], + "declarations": [ + { + "constant": false, + "id": 2172, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2188, + "src": "4992:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2171, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4992:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2174, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 2188, + "src": "5006:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2173, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5006:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2181, + "initialValue": { + "arguments": [ + { + "id": 2179, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2144, + "src": "5061:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2175, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "5033:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5033:11:9", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2177, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2146, + "src": "5053:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5033:27:9", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 2180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5033:33:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4991:75:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2172, + "src": "5101:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2184, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "5110:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2185, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "5122:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2182, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2271, + "src": "5083:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 2186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5083:52:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2152, + "id": 2187, + "nodeType": "Return", + "src": "5076:59:9" + } + ] + }, + "documentation": { + "id": 2140, + "nodeType": "StructuredDocumentation", + "src": "4377:237:9", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 2189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2189, + "src": "4650:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4650:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2144, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2189, + "src": "4666:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2143, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4666:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2146, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2189, + "src": "4685:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4685:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2189, + "src": "4700:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4700:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4649:78:9" + }, + "returnParameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2189, + "src": "4746:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2150, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4746:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4745:14:9" + }, + "scope": 2272, + "src": "4619:523:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2205, + "nodeType": "Block", + "src": "5419:97:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2200, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "5455:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2201, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "5463:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5469:39:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 2199, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2206, + 2241 + ], + "referencedDeclaration": 2241, + "src": "5436:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5436:73:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2198, + "id": 2204, + "nodeType": "Return", + "src": "5429:80:9" + } + ] + }, + "documentation": { + "id": 2190, + "nodeType": "StructuredDocumentation", + "src": "5148:166:9", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2192, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "5347:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5347:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "5363:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2193, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5363:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5346:35:9" + }, + "returnParameters": { + "id": 2198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2197, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2206, + "src": "5405:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2196, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5405:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5404:14:9" + }, + "scope": 2272, + "src": "5319:197:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2240, + "nodeType": "Block", + "src": "5828:288:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2220, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "5857:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2219, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "5846:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5846:18:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5866:38:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 2218, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5838:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5838:67:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "5838:67:9" + }, + { + "assignments": [ + 2226, + 2228 + ], + "declarations": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2240, + "src": "5976:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2225, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5976:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2228, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 2240, + "src": "5990:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2227, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5990:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2233, + "initialValue": { + "arguments": [ + { + "id": 2231, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2211, + "src": "6035:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2229, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "6017:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "6017:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6017:23:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5975:65:9" + }, + { + "expression": { + "arguments": [ + { + "id": 2235, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2226, + "src": "6075:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2236, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "6084:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2237, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2213, + "src": "6096:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2234, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2271, + "src": "6057:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6057:52:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2217, + "id": 2239, + "nodeType": "Return", + "src": "6050:59:9" + } + ] + }, + "documentation": { + "id": 2207, + "nodeType": "StructuredDocumentation", + "src": "5522:173:9", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 2241, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2209, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5728:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5728:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2211, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5744:17:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2210, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5744:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2213, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5763:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2212, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5763:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5727:63:9" + }, + "returnParameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5814:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2215, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5814:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5813:14:9" + }, + "scope": 2272, + "src": "5700:416:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2270, + "nodeType": "Block", + "src": "6251:596:9", + "statements": [ + { + "condition": { + "id": 2252, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "6265:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2268, + "nodeType": "Block", + "src": "6322:519:9", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2256, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "6406:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6406:17:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6426:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6406:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2266, + "nodeType": "Block", + "src": "6778:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2263, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "6803:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2262, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "6796:6:9", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6796:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2265, + "nodeType": "ExpressionStatement", + "src": "6796:20:9" + } + ] + }, + "id": 2267, + "nodeType": "IfStatement", + "src": "6402:429:9", + "trueBody": { + "id": 2261, + "nodeType": "Block", + "src": "6429:343:9", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "6613:145:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6635:40:9", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "6664:10:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6658:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "6658:17:9" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "6639:15:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6707:2:9", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "6711:10:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6703:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6703:19:9" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "6724:15:9" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6696:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6696:44:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6696:44:9" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 2245, + "isOffset": false, + "isSlot": false, + "src": "6664:10:9", + "valueSize": 1 + }, + { + "declaration": 2245, + "isOffset": false, + "isSlot": false, + "src": "6711:10:9", + "valueSize": 1 + } + ], + "id": 2260, + "nodeType": "InlineAssembly", + "src": "6604:154:9" + } + ] + } + } + ] + }, + "id": 2269, + "nodeType": "IfStatement", + "src": "6261:580:9", + "trueBody": { + "id": 2255, + "nodeType": "Block", + "src": "6274:42:9", + "statements": [ + { + "expression": { + "id": 2253, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "6295:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2251, + "id": 2254, + "nodeType": "Return", + "src": "6288:17:9" + } + ] + } + } + ] + }, + "id": 2271, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2243, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "6149:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2242, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6149:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "6163:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2244, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6163:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "6188:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2246, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6188:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6148:67:9" + }, + "returnParameters": { + "id": 2251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2271, + "src": "6237:12:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6237:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6236:14:9" + }, + "scope": 2272, + "src": "6122:725:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2273, + "src": "134:6715:9" + } + ], + "src": "33:6817:9" + }, + "id": 9 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "AddressUpgradeable": [ + 2272 + ], + "ContextUpgradeable": [ + 2317 + ], + "Initializable": [ + 815 + ] + }, + "id": 2318, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2274, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:10" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "../proxy/Initializable.sol", + "id": 2275, + "nodeType": "ImportDirective", + "scope": 2318, + "sourceUnit": 816, + "src": "65:36:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2276, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "643:13:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 2277, + "nodeType": "InheritanceSpecifier", + "src": "643:13:10" + } + ], + "contractDependencies": [ + 815 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2317, + "linearizedBaseContracts": [ + 2317, + 815 + ], + "name": "ContextUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "710:43:10", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2282, + "name": "__Context_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "720:24:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "720:26:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2284, + "nodeType": "ExpressionStatement", + "src": "720:26:10" + } + ] + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2280, + "modifierName": { + "id": 2279, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "698:11:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "698:11:10" + } + ], + "name": "__Context_init", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2278, + "nodeType": "ParameterList", + "parameters": [], + "src": "686:2:10" + }, + "returnParameters": { + "id": 2281, + "nodeType": "ParameterList", + "parameters": [], + "src": "710:0:10" + }, + "scope": 2317, + "src": "663:90:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2291, + "nodeType": "Block", + "src": "816:7:10", + "statements": [] + }, + "id": 2292, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2289, + "modifierName": { + "id": 2288, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "804:11:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "804:11:10" + } + ], + "name": "__Context_init_unchained", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2287, + "nodeType": "ParameterList", + "parameters": [], + "src": "792:2:10" + }, + "returnParameters": { + "id": 2290, + "nodeType": "ParameterList", + "parameters": [], + "src": "816:0:10" + }, + "scope": 2317, + "src": "759:64:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2300, + "nodeType": "Block", + "src": "898:34:10", + "statements": [ + { + "expression": { + "expression": { + "id": 2297, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "915:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "915:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2296, + "id": 2299, + "nodeType": "Return", + "src": "908:17:10" + } + ] + }, + "id": 2301, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2293, + "nodeType": "ParameterList", + "parameters": [], + "src": "847:2:10" + }, + "returnParameters": { + "id": 2296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "881:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "881:15:10", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "880:17:10" + }, + "scope": 2317, + "src": "828:104:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2311, + "nodeType": "Block", + "src": "1003:165:10", + "statements": [ + { + "expression": { + "id": 2306, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1013:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContextUpgradeable_$2317", + "typeString": "contract ContextUpgradeable" + } + }, + "id": 2307, + "nodeType": "ExpressionStatement", + "src": "1013:4:10" + }, + { + "expression": { + "expression": { + "id": 2308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1153:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1153:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 2305, + "id": 2310, + "nodeType": "Return", + "src": "1146:15:10" + } + ] + }, + "id": 2312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2302, + "nodeType": "ParameterList", + "parameters": [], + "src": "955:2:10" + }, + "returnParameters": { + "id": 2305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2304, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2312, + "src": "989:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "989:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "988:14:10" + }, + "scope": 2317, + "src": "938:230:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "constant": false, + "id": 2316, + "mutability": "mutable", + "name": "__gap", + "nodeType": "VariableDeclaration", + "scope": 2317, + "src": "1173:25:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 2313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1173:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2315, + "length": { + "hexValue": "3530", + "id": 2314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1181:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1173:11:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "visibility": "private" + } + ], + "scope": 2318, + "src": "603:598:10" + } + ], + "src": "33:1169:10" + }, + "id": 10 + }, + "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "exportedSymbols": { + "CountersUpgradeable": [ + 2367 + ], + "SafeMathUpgradeable": [ + 749 + ] + }, + "id": 2368, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2319, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:11" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "file": "../math/SafeMathUpgradeable.sol", + "id": 2320, + "nodeType": "ImportDirective", + "scope": 2368, + "sourceUnit": 750, + "src": "66:41:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2321, + "nodeType": "StructuredDocumentation", + "src": "109:571:11", + "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`\n Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath}\n overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n directly accessed." + }, + "fullyImplemented": true, + "id": 2367, + "linearizedBaseContracts": [ + 2367 + ], + "name": "CountersUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2324, + "libraryName": { + "id": 2322, + "name": "SafeMathUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 749, + "src": "721:19:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMathUpgradeable_$749", + "typeString": "library SafeMathUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "715:38:11", + "typeName": { + "id": 2323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "745:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "CountersUpgradeable.Counter", + "id": 2327, + "members": [ + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 2327, + "src": "1098:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1098:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Counter", + "nodeType": "StructDefinition", + "scope": 2367, + "src": "759:374:11", + "visibility": "public" + }, + { + "body": { + "id": 2337, + "nodeType": "Block", + "src": "1213:38:11", + "statements": [ + { + "expression": { + "expression": { + "id": 2334, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "1230:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter storage pointer" + } + }, + "id": 2335, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "1230:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2336, + "nodeType": "Return", + "src": "1223:21:11" + } + ] + }, + "id": 2338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "current", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "counter", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "1156:23:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + }, + "typeName": { + "id": 2328, + "name": "Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "1156:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1155:25:11" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2338, + "src": "1204:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1204:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1203:9:11" + }, + "scope": 2367, + "src": "1139:112:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2349, + "nodeType": "Block", + "src": "1310:125:11", + "statements": [ + { + "expression": { + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2343, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2340, + "src": "1409:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter storage pointer" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "1409:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1427:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1409:19:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2348, + "nodeType": "ExpressionStatement", + "src": "1409:19:11" + } + ] + }, + "id": 2350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2340, + "mutability": "mutable", + "name": "counter", + "nodeType": "VariableDeclaration", + "scope": 2350, + "src": "1276:23:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + }, + "typeName": { + "id": 2339, + "name": "Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "1276:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1275:25:11" + }, + "returnParameters": { + "id": 2342, + "nodeType": "ParameterList", + "parameters": [], + "src": "1310:0:11" + }, + "scope": 2367, + "src": "1257:178:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2365, + "nodeType": "Block", + "src": "1494:55:11", + "statements": [ + { + "expression": { + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 2355, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2352, + "src": "1504:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter storage pointer" + } + }, + "id": 2357, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "1504:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "31", + "id": 2361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1540:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "expression": { + "id": 2358, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2352, + "src": "1521:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter storage pointer" + } + }, + "id": 2359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "1521:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 598, + "src": "1521:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1521:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1504:38:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2364, + "nodeType": "ExpressionStatement", + "src": "1504:38:11" + } + ] + }, + "id": 2366, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decrement", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2352, + "mutability": "mutable", + "name": "counter", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "1460:23:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + }, + "typeName": { + "id": 2351, + "name": "Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "1460:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + }, + "visibility": "internal" + } + ], + "src": "1459:25:11" + }, + "returnParameters": { + "id": 2354, + "nodeType": "ParameterList", + "parameters": [], + "src": "1494:0:11" + }, + "scope": 2367, + "src": "1441:108:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2368, + "src": "681:870:11" + } + ], + "src": "33:1519:11" + }, + "id": 11 + }, + "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol", + "exportedSymbols": { + "EnumerableSetUpgradeable": [ + 2859 + ] + }, + "id": 2860, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2369, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:12" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2370, + "nodeType": "StructuredDocumentation", + "src": "66:686:12", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 2859, + "linearizedBaseContracts": [ + 2859 + ], + "name": "EnumerableSetUpgradeable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSetUpgradeable.Set", + "id": 2378, + "members": [ + { + "constant": false, + "id": 2373, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "1286:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1286:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2372, + "nodeType": "ArrayTypeName", + "src": "1286:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "1437:37:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2376, + "keyType": { + "id": 2374, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1446:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1437:28:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1457:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 2859, + "src": "1232:249:12", + "visibility": "public" + }, + { + "body": { + "id": 2418, + "nodeType": "Block", + "src": "1720:335:12", + "statements": [ + { + "condition": { + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1734:22:12", + "subExpression": { + "arguments": [ + { + "id": 2389, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "1745:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + { + "id": 2390, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1750:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2388, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "1735:9:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1735:21:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2416, + "nodeType": "Block", + "src": "2012:37:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2033:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2387, + "id": 2415, + "nodeType": "Return", + "src": "2026:12:12" + } + ] + }, + "id": 2417, + "nodeType": "IfStatement", + "src": "1730:319:12", + "trueBody": { + "id": 2413, + "nodeType": "Block", + "src": "1758:248:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1789:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 2393, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "1772:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2396, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "1772:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1772:16:12", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1772:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2400, + "nodeType": "ExpressionStatement", + "src": "1772:23:12" + }, + { + "expression": { + "id": 2409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2401, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "1930:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2377, + "src": "1930:12:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2405, + "indexExpression": { + "id": 2403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1943:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1930:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 2406, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "1952:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2407, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "1952:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1952:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1930:40:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2410, + "nodeType": "ExpressionStatement", + "src": "1930:40:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1991:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2387, + "id": 2412, + "nodeType": "Return", + "src": "1984:11:12" + } + ] + } + } + ] + }, + "documentation": { + "id": 2379, + "nodeType": "StructuredDocumentation", + "src": "1487:159:12", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 2419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2381, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2419, + "src": "1665:15:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2380, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "1665:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2383, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2419, + "src": "1682:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2382, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1682:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1664:32:12" + }, + "returnParameters": { + "id": 2387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2386, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2419, + "src": "1714:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1714:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1713:6:12" + }, + "scope": 2859, + "src": "1651:404:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "2295:1440:12", + "statements": [ + { + "assignments": [ + 2430 + ], + "declarations": [ + { + "constant": false, + "id": 2430, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 2498, + "src": "2405:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2405:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2435, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2431, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "2426:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2432, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2377, + "src": "2426:12:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2434, + "indexExpression": { + "id": 2433, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2424, + "src": "2439:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2426:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2405:40:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2436, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2430, + "src": "2460:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2474:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2460:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2496, + "nodeType": "Block", + "src": "3692:37:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3713:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2428, + "id": 2495, + "nodeType": "Return", + "src": "3706:12:12" + } + ] + }, + "id": 2497, + "nodeType": "IfStatement", + "src": "2456:1273:12", + "trueBody": { + "id": 2493, + "nodeType": "Block", + "src": "2477:1209:12", + "statements": [ + { + "assignments": [ + 2440 + ], + "declarations": [ + { + "constant": false, + "id": 2440, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2493, + "src": "2817:21:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2817:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2444, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2441, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2430, + "src": "2841:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2854:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2841:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2817:38:12" + }, + { + "assignments": [ + 2446 + ], + "declarations": [ + { + "constant": false, + "id": 2446, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2493, + "src": "2869:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2869:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2452, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2447, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "2889:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "2889:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2889:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2910:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2889:22:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2869:42:12" + }, + { + "assignments": [ + 2454 + ], + "declarations": [ + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 2493, + "src": "3151:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2453, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3151:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2459, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "3171:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2456, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "3171:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2458, + "indexExpression": { + "id": 2457, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2446, + "src": "3183:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3171:22:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3151:42:12" + }, + { + "expression": { + "id": 2466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2460, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "3285:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "3285:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2464, + "indexExpression": { + "id": 2462, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2440, + "src": "3297:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3285:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2465, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "3314:9:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3285:38:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2467, + "nodeType": "ExpressionStatement", + "src": "3285:38:12" + }, + { + "expression": { + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "3389:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2377, + "src": "3389:12:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2472, + "indexExpression": { + "id": 2470, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "3402:9:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3389:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2473, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2440, + "src": "3415:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3431:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3415:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3389:43:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2477, + "nodeType": "ExpressionStatement", + "src": "3389:43:12" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2478, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "3538:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "3538:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "3538:15:12", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3538:17:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2484, + "nodeType": "ExpressionStatement", + "src": "3538:17:12" + }, + { + "expression": { + "id": 2489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3623:26:12", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2485, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2422, + "src": "3630:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2377, + "src": "3630:12:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2488, + "indexExpression": { + "id": 2487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2424, + "src": "3643:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3630:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2490, + "nodeType": "ExpressionStatement", + "src": "3623:26:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3671:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2428, + "id": 2492, + "nodeType": "Return", + "src": "3664:11:12" + } + ] + } + } + ] + }, + "documentation": { + "id": 2420, + "nodeType": "StructuredDocumentation", + "src": "2061:157:12", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2422, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "2240:15:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2421, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "2240:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2424, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "2257:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2423, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2257:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2239:32:12" + }, + "returnParameters": { + "id": 2428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "2289:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2426, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2289:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2288:6:12" + }, + "scope": 2859, + "src": "2223:1512:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2516, + "nodeType": "Block", + "src": "3895:48:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "3912:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2377, + "src": "3912:12:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2512, + "indexExpression": { + "id": 2511, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "3925:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3912:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3935:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3912:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2508, + "id": 2515, + "nodeType": "Return", + "src": "3905:31:12" + } + ] + }, + "documentation": { + "id": 2500, + "nodeType": "StructuredDocumentation", + "src": "3741:70:12", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 2517, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2517, + "src": "3835:15:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2501, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "3835:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2517, + "src": "3852:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2503, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3852:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3834:32:12" + }, + "returnParameters": { + "id": 2508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2517, + "src": "3889:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2506, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3889:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3888:6:12" + }, + "scope": 2859, + "src": "3816:127:12", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2529, + "nodeType": "Block", + "src": "4089:42:12", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2525, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2520, + "src": "4106:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2526, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "4106:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4106:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2524, + "id": 2528, + "nodeType": "Return", + "src": "4099:25:12" + } + ] + }, + "documentation": { + "id": 2518, + "nodeType": "StructuredDocumentation", + "src": "3949:70:12", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 2530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2520, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2530, + "src": "4041:15:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2519, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "4041:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + } + ], + "src": "4040:17:12" + }, + "returnParameters": { + "id": 2524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2530, + "src": "4080:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4080:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4079:9:12" + }, + "scope": 2859, + "src": "4024:107:12", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2554, + "nodeType": "Block", + "src": "4539:125:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2541, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "4557:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2542, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "4557:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4557:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2544, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "4578:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4557:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4585:36:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 2540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4549:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4549:73:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2548, + "nodeType": "ExpressionStatement", + "src": "4549:73:12" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2549, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "4639:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set storage pointer" + } + }, + "id": 2550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 2373, + "src": "4639:11:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 2552, + "indexExpression": { + "id": 2551, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "4651:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4639:18:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2539, + "id": 2553, + "nodeType": "Return", + "src": "4632:25:12" + } + ] + }, + "documentation": { + "id": 2531, + "nodeType": "StructuredDocumentation", + "src": "4136:322:12", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2555, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2533, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "4476:15:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2532, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "4476:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2535, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "4493:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4493:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4475:32:12" + }, + "returnParameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "4530:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2537, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4530:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4529:9:12" + }, + "scope": 2859, + "src": "4463:201:12", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSetUpgradeable.Bytes32Set", + "id": 2558, + "members": [ + { + "constant": false, + "id": 2557, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2558, + "src": "4717:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2556, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "4717:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 2859, + "src": "4689:45:12", + "visibility": "public" + }, + { + "body": { + "id": 2574, + "nodeType": "Block", + "src": "4980:47:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2569, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "5002:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer" + } + }, + "id": 2570, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "5002:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2563, + "src": "5014:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2568, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "4997:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4997:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2567, + "id": 2573, + "nodeType": "Return", + "src": "4990:30:12" + } + ] + }, + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "4740:159:12", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 2575, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2561, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2575, + "src": "4917:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + }, + "typeName": { + "id": 2560, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2558, + "src": "4917:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2563, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2575, + "src": "4941:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2562, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4941:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4916:39:12" + }, + "returnParameters": { + "id": 2567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2566, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2575, + "src": "4974:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2565, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4974:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4973:6:12" + }, + "scope": 2859, + "src": "4904:123:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2591, + "nodeType": "Block", + "src": "5274:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2586, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "5299:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer" + } + }, + "id": 2587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "5299:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2588, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "5311:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2585, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "5291:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5291:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2584, + "id": 2590, + "nodeType": "Return", + "src": "5284:33:12" + } + ] + }, + "documentation": { + "id": 2576, + "nodeType": "StructuredDocumentation", + "src": "5033:157:12", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 2592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2578, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2592, + "src": "5211:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + }, + "typeName": { + "id": 2577, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2558, + "src": "5211:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2592, + "src": "5235:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2579, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5235:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5210:39:12" + }, + "returnParameters": { + "id": 2584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2592, + "src": "5268:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2582, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5268:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5267:6:12" + }, + "scope": 2859, + "src": "5195:129:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2608, + "nodeType": "Block", + "src": "5491:52:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2595, + "src": "5518:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer" + } + }, + "id": 2604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "5518:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2605, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2597, + "src": "5530:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2602, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "5508:9:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5508:28:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2601, + "id": 2607, + "nodeType": "Return", + "src": "5501:35:12" + } + ] + }, + "documentation": { + "id": 2593, + "nodeType": "StructuredDocumentation", + "src": "5330:70:12", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 2609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2609, + "src": "5423:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + }, + "typeName": { + "id": 2594, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2558, + "src": "5423:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2597, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2609, + "src": "5447:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2596, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5447:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5422:39:12" + }, + "returnParameters": { + "id": 2601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2609, + "src": "5485:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2599, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5485:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5484:6:12" + }, + "scope": 2859, + "src": "5405:138:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2622, + "nodeType": "Block", + "src": "5696:43:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2618, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "5721:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer" + } + }, + "id": 2619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "5721:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + ], + "id": 2617, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "5713:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)" + } + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5713:19:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2616, + "id": 2621, + "nodeType": "Return", + "src": "5706:26:12" + } + ] + }, + "documentation": { + "id": 2610, + "nodeType": "StructuredDocumentation", + "src": "5549:70:12", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 2623, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2623, + "src": "5640:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + }, + "typeName": { + "id": 2611, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2558, + "src": "5640:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "5639:24:12" + }, + "returnParameters": { + "id": 2616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2615, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2623, + "src": "5687:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5687:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5686:9:12" + }, + "scope": 2859, + "src": "5624:115:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2639, + "nodeType": "Block", + "src": "6154:46:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2634, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "6175:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set storage pointer" + } + }, + "id": 2635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "6175:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2636, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "6187:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2633, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "6171:3:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6171:22:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2632, + "id": 2638, + "nodeType": "Return", + "src": "6164:29:12" + } + ] + }, + "documentation": { + "id": 2624, + "nodeType": "StructuredDocumentation", + "src": "5744:322:12", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2640, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2626, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2640, + "src": "6083:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + }, + "typeName": { + "id": 2625, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2558, + "src": "6083:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$2558_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2628, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2640, + "src": "6107:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6107:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6082:39:12" + }, + "returnParameters": { + "id": 2632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2631, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2640, + "src": "6145:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2630, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6145:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6144:9:12" + }, + "scope": 2859, + "src": "6071:129:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSetUpgradeable.AddressSet", + "id": 2643, + "members": [ + { + "constant": false, + "id": 2642, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2643, + "src": "6253:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2641, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "6253:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 2859, + "src": "6225:45:12", + "visibility": "public" + }, + { + "body": { + "id": 2668, + "nodeType": "Block", + "src": "6516:74:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2654, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "6538:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer" + } + }, + "id": 2655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2642, + "src": "6538:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2662, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "6574:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6566:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2660, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "6566:7:12", + "typeDescriptions": {} + } + }, + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6566:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6558:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6558:7:12", + "typeDescriptions": {} + } + }, + "id": 2664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6558:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6550:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2656, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6550:7:12", + "typeDescriptions": {} + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6550:32:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2653, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "6533:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:50:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2652, + "id": 2667, + "nodeType": "Return", + "src": "6526:57:12" + } + ] + }, + "documentation": { + "id": 2644, + "nodeType": "StructuredDocumentation", + "src": "6276:159:12", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 2669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2646, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "6453:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 2645, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "6453:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "6477:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6477:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6452:39:12" + }, + "returnParameters": { + "id": 2652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2651, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "6510:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2650, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6510:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6509:6:12" + }, + "scope": 2859, + "src": "6440:150:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2694, + "nodeType": "Block", + "src": "6837:77:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "6862:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer" + } + }, + "id": 2681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2642, + "src": "6862:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2688, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "6898:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6890:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2686, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "6890:7:12", + "typeDescriptions": {} + } + }, + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6890:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6882:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6882:7:12", + "typeDescriptions": {} + } + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6882:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6874:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2682, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6874:7:12", + "typeDescriptions": {} + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6874:32:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2679, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "6854:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6854:53:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2678, + "id": 2693, + "nodeType": "Return", + "src": "6847:60:12" + } + ] + }, + "documentation": { + "id": 2670, + "nodeType": "StructuredDocumentation", + "src": "6596:157:12", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 2695, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "6774:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 2671, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "6774:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2674, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "6798:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6798:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6773:39:12" + }, + "returnParameters": { + "id": 2678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "6831:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2676, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6831:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6830:6:12" + }, + "scope": 2859, + "src": "6758:156:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2720, + "nodeType": "Block", + "src": "7081:79:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2706, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "7108:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2642, + "src": "7108:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2714, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "7144:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7136:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2712, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7136:7:12", + "typeDescriptions": {} + } + }, + "id": 2715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7136:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7128:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7128:7:12", + "typeDescriptions": {} + } + }, + "id": 2716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7128:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7120:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2708, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7120:7:12", + "typeDescriptions": {} + } + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7120:32:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2705, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "7098:9:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7098:55:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2704, + "id": 2719, + "nodeType": "Return", + "src": "7091:62:12" + } + ] + }, + "documentation": { + "id": 2696, + "nodeType": "StructuredDocumentation", + "src": "6920:70:12", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 2721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "7013:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 2697, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "7013:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2700, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "7037:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7037:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7012:39:12" + }, + "returnParameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2721, + "src": "7075:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2702, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7075:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7074:6:12" + }, + "scope": 2859, + "src": "6995:165:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2734, + "nodeType": "Block", + "src": "7313:43:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2730, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "7338:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer" + } + }, + "id": 2731, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2642, + "src": "7338:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + ], + "id": 2729, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "7330:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)" + } + }, + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7330:19:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2728, + "id": 2733, + "nodeType": "Return", + "src": "7323:26:12" + } + ] + }, + "documentation": { + "id": 2722, + "nodeType": "StructuredDocumentation", + "src": "7166:70:12", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 2735, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2724, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "7257:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 2723, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "7257:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "7256:24:12" + }, + "returnParameters": { + "id": 2728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2727, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2735, + "src": "7304:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7304:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7303:9:12" + }, + "scope": 2859, + "src": "7241:115:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2760, + "nodeType": "Block", + "src": "7771:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2752, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "7816:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet storage pointer" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2642, + "src": "7816:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2754, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2740, + "src": "7828:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2751, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "7812:3:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7812:22:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7804:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7804:7:12", + "typeDescriptions": {} + } + }, + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7796:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2747, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7796:7:12", + "typeDescriptions": {} + } + }, + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7796:40:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7788:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7788:7:12", + "typeDescriptions": {} + } + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7788:49:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2744, + "id": 2759, + "nodeType": "Return", + "src": "7781:56:12" + } + ] + }, + "documentation": { + "id": 2736, + "nodeType": "StructuredDocumentation", + "src": "7361:322:12", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2738, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "7700:22:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + }, + "typeName": { + "id": 2737, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2643, + "src": "7700:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$2643_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2740, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "7724:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7724:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7699:39:12" + }, + "returnParameters": { + "id": 2744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2743, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "7762:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7762:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7761:9:12" + }, + "scope": 2859, + "src": "7688:156:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSetUpgradeable.UintSet", + "id": 2764, + "members": [ + { + "constant": false, + "id": 2763, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2764, + "src": "7892:10:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + }, + "typeName": { + "id": 2762, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2378, + "src": "7892:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 2859, + "src": "7867:42:12", + "visibility": "public" + }, + { + "body": { + "id": 2783, + "nodeType": "Block", + "src": "8152:56:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2775, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2767, + "src": "8174:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer" + } + }, + "id": 2776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2763, + "src": "8174:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 2779, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2769, + "src": "8194:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8186:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2777, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8186:7:12", + "typeDescriptions": {} + } + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8186:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2774, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "8169:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8169:32:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2773, + "id": 2782, + "nodeType": "Return", + "src": "8162:39:12" + } + ] + }, + "documentation": { + "id": 2765, + "nodeType": "StructuredDocumentation", + "src": "7915:159:12", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 2784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2767, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "8092:19:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + }, + "typeName": { + "id": 2766, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2764, + "src": "8092:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "8113:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8113:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8091:36:12" + }, + "returnParameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2772, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "8146:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2771, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8146:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8145:6:12" + }, + "scope": 2859, + "src": "8079:129:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2803, + "nodeType": "Block", + "src": "8452:59:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2795, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "8477:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer" + } + }, + "id": 2796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2763, + "src": "8477:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 2799, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "8497:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8489:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2797, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8489:7:12", + "typeDescriptions": {} + } + }, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8489:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2794, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "8469:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8469:35:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2793, + "id": 2802, + "nodeType": "Return", + "src": "8462:42:12" + } + ] + }, + "documentation": { + "id": 2785, + "nodeType": "StructuredDocumentation", + "src": "8214:157:12", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 2804, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2787, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "8392:19:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + }, + "typeName": { + "id": 2786, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2764, + "src": "8392:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "8413:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8391:36:12" + }, + "returnParameters": { + "id": 2793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2804, + "src": "8446:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2791, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8446:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8445:6:12" + }, + "scope": 2859, + "src": "8376:135:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2823, + "nodeType": "Block", + "src": "8675:61:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2815, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2807, + "src": "8702:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2763, + "src": "8702:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 2819, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2809, + "src": "8722:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8714:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8714:7:12", + "typeDescriptions": {} + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8714:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2814, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "8692:9:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8692:37:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2813, + "id": 2822, + "nodeType": "Return", + "src": "8685:44:12" + } + ] + }, + "documentation": { + "id": 2805, + "nodeType": "StructuredDocumentation", + "src": "8517:70:12", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 2824, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2807, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2824, + "src": "8610:19:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + }, + "typeName": { + "id": 2806, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2764, + "src": "8610:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2809, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2824, + "src": "8631:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8631:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8609:36:12" + }, + "returnParameters": { + "id": 2813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2824, + "src": "8669:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2811, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8669:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8668:6:12" + }, + "scope": 2859, + "src": "8592:144:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2837, + "nodeType": "Block", + "src": "8886:43:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2833, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "8911:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer" + } + }, + "id": 2834, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2763, + "src": "8911:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + ], + "id": 2832, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2530, + "src": "8903:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8903:19:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2831, + "id": 2836, + "nodeType": "Return", + "src": "8896:26:12" + } + ] + }, + "documentation": { + "id": 2825, + "nodeType": "StructuredDocumentation", + "src": "8742:70:12", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 2838, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2827, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2838, + "src": "8833:19:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + }, + "typeName": { + "id": 2826, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2764, + "src": "8833:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "8832:21:12" + }, + "returnParameters": { + "id": 2831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2838, + "src": "8877:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8877:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8876:9:12" + }, + "scope": 2859, + "src": "8817:112:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2857, + "nodeType": "Block", + "src": "9341:55:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2851, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "9370:3:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet storage pointer" + } + }, + "id": 2852, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2763, + "src": "9370:10:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + } + }, + { + "id": 2853, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2843, + "src": "9382:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$2378_storage", + "typeString": "struct EnumerableSetUpgradeable.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2850, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9366:3:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$2378_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9366:22:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9358:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2848, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9358:7:12", + "typeDescriptions": {} + } + }, + "id": 2855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9358:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2847, + "id": 2856, + "nodeType": "Return", + "src": "9351:38:12" + } + ] + }, + "documentation": { + "id": 2839, + "nodeType": "StructuredDocumentation", + "src": "8934:322:12", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2858, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 2858, + "src": "9273:19:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + }, + "typeName": { + "id": 2840, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2764, + "src": "9273:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$2764_storage_ptr", + "typeString": "struct EnumerableSetUpgradeable.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2843, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2858, + "src": "9294:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9294:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9272:36:12" + }, + "returnParameters": { + "id": 2847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2846, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2858, + "src": "9332:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9332:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9331:9:12" + }, + "scope": 2859, + "src": "9261:135:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2860, + "src": "753:8645:12" + } + ], + "src": "33:9366:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/math/SafeMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 3055 + ] + }, + "id": 3056, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2861, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:31:13" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2862, + "nodeType": "StructuredDocumentation", + "src": "66:563:13", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 3055, + "linearizedBaseContracts": [ + 3055 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2887, + "nodeType": "Block", + "src": "949:109:13", + "statements": [ + { + "assignments": [ + 2873 + ], + "declarations": [ + { + "constant": false, + "id": 2873, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2887, + "src": "959:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "959:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2877, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2874, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2865, + "src": "971:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2875, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2867, + "src": "975:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "971:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "959:17:13" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2879, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2873, + "src": "994:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2880, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2865, + "src": "999:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "994:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1002:29:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2878, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "986:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "986:46:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2884, + "nodeType": "ExpressionStatement", + "src": "986:46:13" + }, + { + "expression": { + "id": 2885, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2873, + "src": "1050:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2871, + "id": 2886, + "nodeType": "Return", + "src": "1043:8:13" + } + ] + }, + "documentation": { + "id": 2863, + "nodeType": "StructuredDocumentation", + "src": "653:224:13", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 2888, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2865, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2888, + "src": "895:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "895:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2867, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2888, + "src": "906:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "906:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "894:22:13" + }, + "returnParameters": { + "id": 2871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2870, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2888, + "src": "940:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "940:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:13" + }, + "scope": 3055, + "src": "882:176:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2904, + "nodeType": "Block", + "src": "1396:67:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2899, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "1417:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2900, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2893, + "src": "1420:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 2901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1423:32:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 2898, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2905, + 2933 + ], + "referencedDeclaration": 2933, + "src": "1413:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1413:43:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2897, + "id": 2903, + "nodeType": "Return", + "src": "1406:50:13" + } + ] + }, + "documentation": { + "id": 2889, + "nodeType": "StructuredDocumentation", + "src": "1064:260:13", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2905, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2891, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2905, + "src": "1342:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1342:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2893, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2905, + "src": "1353:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1353:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1341:22:13" + }, + "returnParameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2905, + "src": "1387:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1387:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1386:9:13" + }, + "scope": 3055, + "src": "1329:134:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2932, + "nodeType": "Block", + "src": "1849:92:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2918, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2910, + "src": "1867:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2919, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2908, + "src": "1872:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1867:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2921, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2912, + "src": "1875:12:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2917, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1859:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1859:29:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2923, + "nodeType": "ExpressionStatement", + "src": "1859:29:13" + }, + { + "assignments": [ + 2925 + ], + "declarations": [ + { + "constant": false, + "id": 2925, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2932, + "src": "1898:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1898:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2929, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2926, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2908, + "src": "1910:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2927, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2910, + "src": "1914:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1910:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1898:17:13" + }, + { + "expression": { + "id": 2930, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2925, + "src": "1933:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2916, + "id": 2931, + "nodeType": "Return", + "src": "1926:8:13" + } + ] + }, + "documentation": { + "id": 2906, + "nodeType": "StructuredDocumentation", + "src": "1469:280:13", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2933, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2908, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2933, + "src": "1767:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1767:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2910, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2933, + "src": "1778:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1778:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2912, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2933, + "src": "1789:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2911, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1789:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:50:13" + }, + "returnParameters": { + "id": 2916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2915, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2933, + "src": "1840:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1840:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1839:9:13" + }, + "scope": 3055, + "src": "1754:187:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2967, + "nodeType": "Block", + "src": "2255:392:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2943, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "2487:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2492:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2487:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2949, + "nodeType": "IfStatement", + "src": "2483:45:13", + "trueBody": { + "id": 2948, + "nodeType": "Block", + "src": "2495:33:13", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2516:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2942, + "id": 2947, + "nodeType": "Return", + "src": "2509:8:13" + } + ] + } + }, + { + "assignments": [ + 2951 + ], + "declarations": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 2967, + "src": "2538:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2538:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2955, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2952, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "2550:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2953, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "2554:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2550:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2538:17:13" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2957, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2573:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2958, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "2577:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2573:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2960, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "2582:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2573:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2585:35:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2956, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2565:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2565:56:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2964, + "nodeType": "ExpressionStatement", + "src": "2565:56:13" + }, + { + "expression": { + "id": 2965, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "2639:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2942, + "id": 2966, + "nodeType": "Return", + "src": "2632:8:13" + } + ] + }, + "documentation": { + "id": 2934, + "nodeType": "StructuredDocumentation", + "src": "1947:236:13", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 2968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2936, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2968, + "src": "2201:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2201:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2968, + "src": "2212:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2212:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2200:22:13" + }, + "returnParameters": { + "id": 2942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2941, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2968, + "src": "2246:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2246:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2245:9:13" + }, + "scope": 3055, + "src": "2188:459:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2984, + "nodeType": "Block", + "src": "3176:63:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "3197:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "3200:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3203:28:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2978, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2985, + 3013 + ], + "referencedDeclaration": 3013, + "src": "3193:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3193:39:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2977, + "id": 2983, + "nodeType": "Return", + "src": "3186:46:13" + } + ] + }, + "documentation": { + "id": 2969, + "nodeType": "StructuredDocumentation", + "src": "2653:451:13", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2985, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 2985, + "src": "3122:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3122:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 2985, + "src": "3133:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3133:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3121:22:13" + }, + "returnParameters": { + "id": 2977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2976, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2985, + "src": "3167:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3167:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3166:9:13" + }, + "scope": 3055, + "src": "3109:130:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3012, + "nodeType": "Block", + "src": "3816:177:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2998, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "3834:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3838:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3834:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3001, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2992, + "src": "3841:12:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2997, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3826:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3826:28:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3003, + "nodeType": "ExpressionStatement", + "src": "3826:28:13" + }, + { + "assignments": [ + 3005 + ], + "declarations": [ + { + "constant": false, + "id": 3005, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "3864:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3864:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3009, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3006, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "3876:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3007, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "3880:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3876:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3864:17:13" + }, + { + "expression": { + "id": 3010, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "3985:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2996, + "id": 3011, + "nodeType": "Return", + "src": "3978:8:13" + } + ] + }, + "documentation": { + "id": 2986, + "nodeType": "StructuredDocumentation", + "src": "3245:471:13", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3013, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2988, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3013, + "src": "3734:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3734:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2990, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3013, + "src": "3745:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3745:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2992, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3013, + "src": "3756:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2991, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3756:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3733:50:13" + }, + "returnParameters": { + "id": 2996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2995, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3013, + "src": "3807:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3807:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3806:9:13" + }, + "scope": 3055, + "src": "3721:272:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3029, + "nodeType": "Block", + "src": "4511:61:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3024, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3016, + "src": "4532:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3025, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3018, + "src": "4535:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 3026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4538:26:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 3023, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3030, + 3054 + ], + "referencedDeclaration": 3054, + "src": "4528:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4528:37:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3022, + "id": 3028, + "nodeType": "Return", + "src": "4521:44:13" + } + ] + }, + "documentation": { + "id": 3014, + "nodeType": "StructuredDocumentation", + "src": "3999:440:13", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3030, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3016, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3030, + "src": "4457:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4457:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3030, + "src": "4468:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4468:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4456:22:13" + }, + "returnParameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3030, + "src": "4502:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4502:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4501:9:13" + }, + "scope": 3055, + "src": "4444:128:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3053, + "nodeType": "Block", + "src": "5138:68:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3043, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3035, + "src": "5156:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5161:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3046, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3037, + "src": "5164:12:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3042, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5148:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5148:29:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3048, + "nodeType": "ExpressionStatement", + "src": "5148:29:13" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3049, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "5194:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 3050, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3035, + "src": "5198:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5194:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3041, + "id": 3052, + "nodeType": "Return", + "src": "5187:12:13" + } + ] + }, + "documentation": { + "id": 3031, + "nodeType": "StructuredDocumentation", + "src": "4578:460:13", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3054, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3033, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3054, + "src": "5056:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5056:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3035, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3054, + "src": "5067:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3034, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5067:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3037, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3054, + "src": "5078:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3036, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5078:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5055:50:13" + }, + "returnParameters": { + "id": 3041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3040, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3054, + "src": "5129:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5129:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5128:9:13" + }, + "scope": 3055, + "src": "5043:163:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3056, + "src": "630:4578:13" + } + ], + "src": "33:5176:13" + }, + "id": 13 + }, + "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol": { + "ast": { + "absolutePath": "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol", + "exportedSymbols": { + "DAOToken": [ + 4188 + ] + }, + "id": 4189, + "license": "BSD-3-Clause", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3057, + "literals": [ + "solidity", + "^", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:14" + }, + { + "id": 3058, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:14" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4188, + "linearizedBaseContracts": [ + 4188 + ], + "name": "DAOToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 3059, + "nodeType": "StructuredDocumentation", + "src": "1779:44:14", + "text": "@notice EIP-20 token name for this token" + }, + "functionSelector": "06fdde03", + "id": 3062, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "1828:49:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3060, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1828:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "436c696d6174652044414f20546f6b656e", + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1858:19:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7c75c83381dcf4c0e5ba36df2cc653b50dcd8f69236256411bc04c9f677ed4c0", + "typeString": "literal_string \"Climate DAO Token\"" + }, + "value": "Climate DAO Token" + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 3063, + "nodeType": "StructuredDocumentation", + "src": "1884:46:14", + "text": "@notice EIP-20 token symbol for this token" + }, + "functionSelector": "95d89b41", + "id": 3066, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "1935:39:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3064, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1935:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "64434c4d38", + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1967:7:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1726c2ec8bf5f3af9535b4f358462c01940da5c9d6c6bf0075924c96f97dc1d2", + "typeString": "literal_string \"dCLM8\"" + }, + "value": "dCLM8" + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 3067, + "nodeType": "StructuredDocumentation", + "src": "1981:48:14", + "text": "@notice EIP-20 token decimals for this token" + }, + "functionSelector": "313ce567", + "id": 3070, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2034:35:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3068, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2034:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3138", + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2067:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3071, + "nodeType": "StructuredDocumentation", + "src": "2076:49:14", + "text": "@notice Total number of tokens in circulation" + }, + "functionSelector": "18160ddd", + "id": 3074, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2130:37:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3072, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2130:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130303030303030653138", + "id": 3073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2156:11:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000_by_1", + "typeString": "int_const 10000000000000000000000000" + }, + "value": "10000000e18" + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3075, + "nodeType": "StructuredDocumentation", + "src": "2194:44:14", + "text": "@notice Initial holder of all DAO tokens" + }, + "functionSelector": "b72218e3", + "id": 3077, + "mutability": "mutable", + "name": "initialHolder", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2243:28:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2243:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3078, + "nodeType": "StructuredDocumentation", + "src": "2278:90:14", + "text": "@notice Governor to be set after deploy for permissions to burn tokens (only set once)" + }, + "functionSelector": "0c340a24", + "id": 3084, + "mutability": "mutable", + "name": "governor", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2373:36:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2373:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30", + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2407:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2399:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2399:7:14", + "typeDescriptions": {} + } + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2399:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3085, + "nodeType": "StructuredDocumentation", + "src": "2416:46:14", + "text": "@dev Allowance amounts on behalf of others" + }, + "id": 3091, + "mutability": "mutable", + "name": "allowances", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2467:68:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + }, + "typeName": { + "id": 3090, + "keyType": { + "id": 3086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2467:48:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + }, + "valueType": { + "id": 3089, + "keyType": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2496:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2487:27:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "valueType": { + "id": 3088, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "2507:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 3092, + "nodeType": "StructuredDocumentation", + "src": "2542:59:14", + "text": "@dev Official record of token balances for each account" + }, + "id": 3096, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2606:45:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "typeName": { + "id": 3095, + "keyType": { + "id": 3093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2606:27:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + }, + "valueType": { + "id": 3094, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "2626:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "documentation": { + "id": 3097, + "nodeType": "StructuredDocumentation", + "src": "2658:46:14", + "text": "@notice A record of each accounts delegate" + }, + "functionSelector": "587cde1e", + "id": 3101, + "mutability": "mutable", + "name": "delegates", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2709:45:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 3100, + "keyType": { + "id": 3098, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2718:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2709:28:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 3099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2729:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "public" + }, + { + "canonicalName": "DAOToken.Checkpoint", + "id": 3106, + "members": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "fromBlock", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "2865:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3102, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2865:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3105, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "2891:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3104, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "2891:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "name": "Checkpoint", + "nodeType": "StructDefinition", + "scope": 4188, + "src": "2837:73:14", + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3107, + "nodeType": "StructuredDocumentation", + "src": "2916:68:14", + "text": "@notice A record of votes checkpoints for each account, by index" + }, + "functionSelector": "f1127ed8", + "id": 3113, + "mutability": "mutable", + "name": "checkpoints", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "2989:70:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint))" + }, + "typeName": { + "id": 3112, + "keyType": { + "id": 3108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2998:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2989:51:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint))" + }, + "valueType": { + "id": 3111, + "keyType": { + "id": 3109, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3018:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Mapping", + "src": "3009:30:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint)" + }, + "valueType": { + "id": 3110, + "name": "Checkpoint", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3106, + "src": "3028:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage_ptr", + "typeString": "struct DAOToken.Checkpoint" + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3114, + "nodeType": "StructuredDocumentation", + "src": "3066:54:14", + "text": "@notice The number of checkpoints for each account" + }, + "functionSelector": "6fcfff45", + "id": 3118, + "mutability": "mutable", + "name": "numCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "3125:49:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + }, + "typeName": { + "id": 3117, + "keyType": { + "id": 3115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3134:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3125:27:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + }, + "valueType": { + "id": 3116, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3145:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 3119, + "nodeType": "StructuredDocumentation", + "src": "3181:58:14", + "text": "@notice The EIP-712 typehash for the contract's domain" + }, + "functionSelector": "20606b70", + "id": 3124, + "mutability": "constant", + "name": "DOMAIN_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "3244:122:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3120, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3244:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3296:69:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 3121, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3286:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3286:80:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 3125, + "nodeType": "StructuredDocumentation", + "src": "3373:79:14", + "text": "@notice The EIP-712 typehash for the delegation struct used by the contract" + }, + "functionSelector": "e7a324dc", + "id": 3130, + "mutability": "constant", + "name": "DELEGATION_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "3457:117:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3126, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929", + "id": 3128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:60:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf", + "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"" + }, + "value": "Delegation(address delegatee,uint256 nonce,uint256 expiry)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf", + "typeString": "literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\"" + } + ], + "id": 3127, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3503:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3503:71:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 3131, + "nodeType": "StructuredDocumentation", + "src": "3581:66:14", + "text": "@notice A record of states for signing / validating signatures" + }, + "functionSelector": "7ecebe00", + "id": 3135, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "scope": 4188, + "src": "3652:39:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3134, + "keyType": { + "id": 3132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3661:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3652:25:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3672:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 3136, + "nodeType": "StructuredDocumentation", + "src": "3698:71:14", + "text": "@notice An event thats emitted when an account changes its delegate" + }, + "id": 3144, + "name": "DelegateChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 3143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3138, + "indexed": true, + "mutability": "mutable", + "name": "delegator", + "nodeType": "VariableDeclaration", + "scope": 3144, + "src": "3796:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3796:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3140, + "indexed": true, + "mutability": "mutable", + "name": "fromDelegate", + "nodeType": "VariableDeclaration", + "scope": 3144, + "src": "3823:28:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3823:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3142, + "indexed": true, + "mutability": "mutable", + "name": "toDelegate", + "nodeType": "VariableDeclaration", + "scope": 3144, + "src": "3853:26:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3853:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3795:85:14" + }, + "src": "3774:107:14" + }, + { + "anonymous": false, + "documentation": { + "id": 3145, + "nodeType": "StructuredDocumentation", + "src": "3887:81:14", + "text": "@notice An event thats emitted when a delegate account's vote balance changes" + }, + "id": 3153, + "name": "DelegateVotesChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 3152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3147, + "indexed": true, + "mutability": "mutable", + "name": "delegate", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "4000:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4000:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "indexed": false, + "mutability": "mutable", + "name": "previousBalance", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "4026:20:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3148, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4026:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3151, + "indexed": false, + "mutability": "mutable", + "name": "newBalance", + "nodeType": "VariableDeclaration", + "scope": 3153, + "src": "4048:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3150, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4048:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3999:65:14" + }, + "src": "3973:92:14" + }, + { + "anonymous": false, + "documentation": { + "id": 3154, + "nodeType": "StructuredDocumentation", + "src": "4071:46:14", + "text": "@notice The standard EIP-20 transfer event" + }, + "id": 3162, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3156, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3162, + "src": "4137:20:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4137:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3158, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3162, + "src": "4159:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3157, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4159:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3160, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3162, + "src": "4179:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4179:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4136:58:14" + }, + "src": "4122:73:14" + }, + { + "anonymous": false, + "documentation": { + "id": 3163, + "nodeType": "StructuredDocumentation", + "src": "4201:46:14", + "text": "@notice The standard EIP-20 approval event" + }, + "id": 3171, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3165, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "4267:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4267:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3167, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "4290:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4290:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3169, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "4315:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3168, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4315:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4266:64:14" + }, + "src": "4252:79:14" + }, + { + "body": { + "id": 3199, + "nodeType": "Block", + "src": "4491:146:14", + "statements": [ + { + "expression": { + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3177, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "4501:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3179, + "indexExpression": { + "id": 3178, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "4510:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4501:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3182, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "4528:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4521:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 3180, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "4521:6:14", + "typeDescriptions": {} + } + }, + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4521:19:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "4501:39:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3185, + "nodeType": "ExpressionStatement", + "src": "4501:39:14" + }, + { + "expression": { + "id": 3188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3186, + "name": "initialHolder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3077, + "src": "4550:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3187, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "4566:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4550:23:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3189, + "nodeType": "ExpressionStatement", + "src": "4550:23:14" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4597:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4597:7:14", + "typeDescriptions": {} + } + }, + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3195, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "4609:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3196, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "4618:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3162, + "src": "4588:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4588:42:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3198, + "nodeType": "EmitStatement", + "src": "4583:47:14" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "4337:120:14", + "text": " @notice Construct a new dCLM8 token\n @param account The initial account to grant all the tokens" + }, + "id": 3200, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3200, + "src": "4474:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4474:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4473:17:14" + }, + "returnParameters": { + "id": 3176, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:0:14" + }, + "scope": 4188, + "src": "4462:175:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3216, + "nodeType": "Block", + "src": "5015:52:14", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3210, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3091, + "src": "5032:10:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 3212, + "indexExpression": { + "id": 3211, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "5043:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5032:19:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3214, + "indexExpression": { + "id": 3213, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3205, + "src": "5052:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5032:28:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3209, + "id": 3215, + "nodeType": "Return", + "src": "5025:35:14" + } + ] + }, + "documentation": { + "id": 3201, + "nodeType": "StructuredDocumentation", + "src": "4643:285:14", + "text": " @notice Get the number of tokens `spender` is approved to spend on behalf of `account`\n @param account The address of the account holding the funds\n @param spender The address of the account spending the funds\n @return The number of tokens approved" + }, + "functionSelector": "dd62ed3e", + "id": 3217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3203, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3217, + "src": "4952:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4952:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3205, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3217, + "src": "4969:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4969:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4951:34:14" + }, + "returnParameters": { + "id": 3209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3208, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3217, + "src": "5009:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3207, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5009:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5008:6:14" + }, + "scope": 4188, + "src": "4933:134:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3273, + "nodeType": "Block", + "src": "5609:334:14", + "statements": [ + { + "assignments": [ + 3228 + ], + "declarations": [ + { + "constant": false, + "id": 3228, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3273, + "src": "5619:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3227, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5619:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3229, + "nodeType": "VariableDeclarationStatement", + "src": "5619:13:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3230, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "5646:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5664:2:14", + "subExpression": { + "hexValue": "31", + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5665:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5659:4:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3231, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5659:4:14", + "typeDescriptions": {} + } + }, + "id": 3235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5659:8:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5646:21:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3253, + "nodeType": "Block", + "src": "5719:93:14", + "statements": [ + { + "expression": { + "id": 3251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3246, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5733:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3248, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "5749:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "64434c4d383a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "id": 3249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5760:40:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a495d09abcd660fafcc6eb770f1763d36dc42f7495a66af0226a99d6ebc6ff6c", + "typeString": "literal_string \"dCLM8::approve: amount exceeds 96 bits\"" + }, + "value": "dCLM8::approve: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_a495d09abcd660fafcc6eb770f1763d36dc42f7495a66af0226a99d6ebc6ff6c", + "typeString": "literal_string \"dCLM8::approve: amount exceeds 96 bits\"" + } + ], + "id": 3247, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4081, + "src": "5742:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5742:59:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "5733:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3252, + "nodeType": "ExpressionStatement", + "src": "5733:68:14" + } + ] + }, + "id": 3254, + "nodeType": "IfStatement", + "src": "5642:170:14", + "trueBody": { + "id": 3245, + "nodeType": "Block", + "src": "5669:44:14", + "statements": [ + { + "expression": { + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3237, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5683:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "5699:2:14", + "subExpression": { + "hexValue": "31", + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5700:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5692:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 3238, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5692:6:14", + "typeDescriptions": {} + } + }, + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5692:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "5683:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3244, + "nodeType": "ExpressionStatement", + "src": "5683:19:14" + } + ] + } + }, + { + "expression": { + "id": 3262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 3255, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3091, + "src": "5822:10:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 3259, + "indexExpression": { + "expression": { + "id": 3256, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5833:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5833:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5822:22:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3260, + "indexExpression": { + "id": 3258, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "5845:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5822:31:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3261, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5856:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "5822:40:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3263, + "nodeType": "ExpressionStatement", + "src": "5822:40:14" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 3265, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5887:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5887:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3267, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "5899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3268, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5908:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3264, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3171, + "src": "5878:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5878:37:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3270, + "nodeType": "EmitStatement", + "src": "5873:42:14" + }, + { + "expression": { + "hexValue": "74727565", + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5932:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3226, + "id": 3272, + "nodeType": "Return", + "src": "5925:11:14" + } + ] + }, + "documentation": { + "id": 3218, + "nodeType": "StructuredDocumentation", + "src": "5073:457:14", + "text": " @notice Approve `spender` to transfer up to `amount` from `src`\n @dev This will overwrite the approval amount for `spender`\n and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)\n @param spender The address of the account which may transfer tokens\n @param rawAmount The number of tokens that are approved (2^256-1 means infinite)\n @return Whether or not the approval succeeded" + }, + "functionSelector": "095ea7b3", + "id": 3274, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3220, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3274, + "src": "5552:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5552:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3222, + "mutability": "mutable", + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 3274, + "src": "5569:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3221, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5569:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5551:33:14" + }, + "returnParameters": { + "id": 3226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3225, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3274, + "src": "5603:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3224, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5603:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5602:6:14" + }, + "scope": 4188, + "src": "5535:408:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3286, + "nodeType": "Block", + "src": "6204:41:14", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3282, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "6221:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3284, + "indexExpression": { + "id": 3283, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3277, + "src": "6230:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6221:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3281, + "id": 3285, + "nodeType": "Return", + "src": "6214:24:14" + } + ] + }, + "documentation": { + "id": 3275, + "nodeType": "StructuredDocumentation", + "src": "5949:185:14", + "text": " @notice Get the number of tokens held by the `account`\n @param account The address of the account to get the balance of\n @return The number of tokens held" + }, + "functionSelector": "70a08231", + "id": 3287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3278, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3277, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3287, + "src": "6158:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3276, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6158:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6157:17:14" + }, + "returnParameters": { + "id": 3281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3280, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3287, + "src": "6198:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3279, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6198:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6197:6:14" + }, + "scope": 4188, + "src": "6139:106:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3313, + "nodeType": "Block", + "src": "6572:164:14", + "statements": [ + { + "assignments": [ + 3298 + ], + "declarations": [ + { + "constant": false, + "id": 3298, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3313, + "src": "6582:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3297, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "6582:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3303, + "initialValue": { + "arguments": [ + { + "id": 3300, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "6605:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "64434c4d383a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473", + "id": 3301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6616:41:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6325b7f6af7a6a3126d6cec0b1513c367253c4e1a4063098c788a666402975c4", + "typeString": "literal_string \"dCLM8::transfer: amount exceeds 96 bits\"" + }, + "value": "dCLM8::transfer: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_6325b7f6af7a6a3126d6cec0b1513c367253c4e1a4063098c788a666402975c4", + "typeString": "literal_string \"dCLM8::transfer: amount exceeds 96 bits\"" + } + ], + "id": 3299, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4081, + "src": "6598:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 3302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6598:60:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6582:76:14" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3305, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6684:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6684:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3307, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3290, + "src": "6696:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3308, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3298, + "src": "6701:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3304, + "name": "_transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3851, + "src": "6668:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6668:40:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3310, + "nodeType": "ExpressionStatement", + "src": "6668:40:14" + }, + { + "expression": { + "hexValue": "74727565", + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6725:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3296, + "id": 3312, + "nodeType": "Return", + "src": "6718:11:14" + } + ] + }, + "documentation": { + "id": 3288, + "nodeType": "StructuredDocumentation", + "src": "6251:245:14", + "text": " @notice Transfer `amount` tokens from `msg.sender` to `dst`\n @param dst The address of the destination account\n @param rawAmount The number of tokens to transfer\n @return Whether or not the transfer succeeded" + }, + "functionSelector": "a9059cbb", + "id": 3314, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3290, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 3314, + "src": "6519:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6519:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3292, + "mutability": "mutable", + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 3314, + "src": "6532:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6532:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6518:29:14" + }, + "returnParameters": { + "id": 3296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3295, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3314, + "src": "6566:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3294, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6566:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6565:6:14" + }, + "scope": 4188, + "src": "6501:235:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3389, + "nodeType": "Block", + "src": "7125:572:14", + "statements": [ + { + "assignments": [ + 3327 + ], + "declarations": [ + { + "constant": false, + "id": 3327, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3389, + "src": "7135:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7135:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3330, + "initialValue": { + "expression": { + "id": 3328, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7153:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7153:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7135:28:14" + }, + { + "assignments": [ + 3332 + ], + "declarations": [ + { + "constant": false, + "id": 3332, + "mutability": "mutable", + "name": "spenderAllowance", + "nodeType": "VariableDeclaration", + "scope": 3389, + "src": "7173:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3331, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "7173:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3338, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 3333, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3091, + "src": "7199:10:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 3335, + "indexExpression": { + "id": 3334, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "7210:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7199:15:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3337, + "indexExpression": { + "id": 3336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "7215:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7199:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7173:50:14" + }, + { + "assignments": [ + 3340 + ], + "declarations": [ + { + "constant": false, + "id": 3340, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3389, + "src": "7233:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3339, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "7233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3345, + "initialValue": { + "arguments": [ + { + "id": 3342, + "name": "rawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3321, + "src": "7256:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "64434c4d383a3a617070726f76653a20616d6f756e7420657863656564732039362062697473", + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7267:40:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a495d09abcd660fafcc6eb770f1763d36dc42f7495a66af0226a99d6ebc6ff6c", + "typeString": "literal_string \"dCLM8::approve: amount exceeds 96 bits\"" + }, + "value": "dCLM8::approve: amount exceeds 96 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_a495d09abcd660fafcc6eb770f1763d36dc42f7495a66af0226a99d6ebc6ff6c", + "typeString": "literal_string \"dCLM8::approve: amount exceeds 96 bits\"" + } + ], + "id": 3341, + "name": "safe96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4081, + "src": "7249:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint256,string memory) pure returns (uint96)" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7249:59:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7233:75:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3346, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "7323:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 3347, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "7334:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7323:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3349, + "name": "spenderAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3332, + "src": "7341:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7368:2:14", + "subExpression": { + "hexValue": "31", + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7369:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7361:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 3350, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "7361:6:14", + "typeDescriptions": {} + } + }, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7361:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "7341:30:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7323:48:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3380, + "nodeType": "IfStatement", + "src": "7319:307:14", + "trueBody": { + "id": 3379, + "nodeType": "Block", + "src": "7373:253:14", + "statements": [ + { + "assignments": [ + 3358 + ], + "declarations": [ + { + "constant": false, + "id": 3358, + "mutability": "mutable", + "name": "newAllowance", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "7387:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3357, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "7387:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3364, + "initialValue": { + "arguments": [ + { + "id": 3360, + "name": "spenderAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3332, + "src": "7415:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3361, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3340, + "src": "7433:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "hexValue": "64434c4d383a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365", + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7441:64:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_66e7603b163620e084d3f8884f331128ecc4504377564ee2b9e4de7155244e00", + "typeString": "literal_string \"dCLM8::transferFrom: transfer amount exceeds spender allowance\"" + }, + "value": "dCLM8::transferFrom: transfer amount exceeds spender allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_66e7603b163620e084d3f8884f331128ecc4504377564ee2b9e4de7155244e00", + "typeString": "literal_string \"dCLM8::transferFrom: transfer amount exceeds spender allowance\"" + } + ], + "id": 3359, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "7409:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 3363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7409:97:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7387:119:14" + }, + { + "expression": { + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 3365, + "name": "allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3091, + "src": "7520:10:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint96_$_$", + "typeString": "mapping(address => mapping(address => uint96))" + } + }, + "id": 3368, + "indexExpression": { + "id": 3366, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "7531:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7520:15:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3369, + "indexExpression": { + "id": 3367, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "7536:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7520:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3370, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "7547:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "7520:39:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3372, + "nodeType": "ExpressionStatement", + "src": "7520:39:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3374, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "7588:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3375, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "7593:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3376, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "7602:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3373, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3171, + "src": "7579:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7579:36:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3378, + "nodeType": "EmitStatement", + "src": "7574:41:14" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3382, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "7652:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3383, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "7657:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3384, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3340, + "src": "7662:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3381, + "name": "_transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3851, + "src": "7636:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7636:33:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3386, + "nodeType": "ExpressionStatement", + "src": "7636:33:14" + }, + { + "expression": { + "hexValue": "74727565", + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7686:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3325, + "id": 3388, + "nodeType": "Return", + "src": "7679:11:14" + } + ] + }, + "documentation": { + "id": 3315, + "nodeType": "StructuredDocumentation", + "src": "6742:290:14", + "text": " @notice Transfer `amount` tokens from `src` to `dst`\n @param src The address of the source account\n @param dst The address of the destination account\n @param rawAmount The number of tokens to transfer\n @return Whether or not the transfer succeeded" + }, + "functionSelector": "23b872dd", + "id": 3390, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3317, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "scope": 3390, + "src": "7059:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3316, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7059:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3319, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 3390, + "src": "7072:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7072:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3321, + "mutability": "mutable", + "name": "rawAmount", + "nodeType": "VariableDeclaration", + "scope": 3390, + "src": "7085:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3320, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7085:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7058:42:14" + }, + "returnParameters": { + "id": 3325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3324, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3390, + "src": "7119:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3323, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7119:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7118:6:14" + }, + "scope": 4188, + "src": "7037:660:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3402, + "nodeType": "Block", + "src": "7883:56:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7910:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7910:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3399, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "7922:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3396, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3765, + "src": "7900:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7900:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 3395, + "id": 3401, + "nodeType": "Return", + "src": "7893:39:14" + } + ] + }, + "documentation": { + "id": 3391, + "nodeType": "StructuredDocumentation", + "src": "7703:131:14", + "text": " @notice Delegate votes from `msg.sender` to `delegatee`\n @param delegatee The address to delegate votes to" + }, + "functionSelector": "5c19a95c", + "id": 3403, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "delegate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3393, + "mutability": "mutable", + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 3403, + "src": "7857:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7857:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7856:19:14" + }, + "returnParameters": { + "id": 3395, + "nodeType": "ParameterList", + "parameters": [], + "src": "7883:0:14" + }, + "scope": 4188, + "src": "7839:100:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3505, + "nodeType": "Block", + "src": "8467:690:14", + "statements": [ + { + "assignments": [ + 3420 + ], + "declarations": [ + { + "constant": false, + "id": 3420, + "mutability": "mutable", + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 3505, + "src": "8477:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3419, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8477:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 3439, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 3424, + "name": "DOMAIN_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3124, + "src": "8524:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 3428, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3062, + "src": "8557:4:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8551:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8551:5:14", + "typeDescriptions": {} + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8551:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3425, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8541:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8541:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3431, + "name": "getChainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "8565:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 3432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8565:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 3435, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8587:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAOToken_$4188", + "typeString": "contract DAOToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DAOToken_$4188", + "typeString": "contract DAOToken" + } + ], + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8579:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8579:7:14", + "typeDescriptions": {} + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8579:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3422, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8513:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "8513:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8513:80:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3421, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8503:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8503:91:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8477:117:14" + }, + { + "assignments": [ + 3441 + ], + "declarations": [ + { + "constant": false, + "id": 3441, + "mutability": "mutable", + "name": "structHash", + "nodeType": "VariableDeclaration", + "scope": 3505, + "src": "8604:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3440, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8604:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 3451, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 3445, + "name": "DELEGATION_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "8646:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3446, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3406, + "src": "8667:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3447, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "8678:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3448, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3410, + "src": "8685:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3443, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8635:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "8635:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8635:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3442, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8625:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8625:68:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8604:89:14" + }, + { + "assignments": [ + 3453 + ], + "declarations": [ + { + "constant": false, + "id": 3453, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "scope": 3505, + "src": "8703:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3452, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8703:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 3462, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1901", + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8747:10:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string hex\"1901\"" + }, + "value": "\u0019\u0001" + }, + { + "id": 3458, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3420, + "src": "8759:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3459, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "8776:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string hex\"1901\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 3455, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8730:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "8730:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8730:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3454, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8720:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8720:68:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8703:85:14" + }, + { + "assignments": [ + 3464 + ], + "declarations": [ + { + "constant": false, + "id": 3464, + "mutability": "mutable", + "name": "signatory", + "nodeType": "VariableDeclaration", + "scope": 3505, + "src": "8798:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8798:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3471, + "initialValue": { + "arguments": [ + { + "id": 3466, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "8828:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3467, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3412, + "src": "8836:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 3468, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "8839:1:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3469, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "8842:1:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 3465, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "8818:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 3470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8818:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8798:46:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3473, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "8862:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8883:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8875:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8875:7:14", + "typeDescriptions": {} + } + }, + "id": 3477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8875:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8862:23:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a64656c656761746542795369673a20696e76616c6964207369676e6174757265", + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8887:41:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05", + "typeString": "literal_string \"dCLM8::delegateBySig: invalid signature\"" + }, + "value": "dCLM8::delegateBySig: invalid signature" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4003cfb1beaa267b2dea4b0cf1971f53af5ae64e3f9b854c759766dbeeb90d05", + "typeString": "literal_string \"dCLM8::delegateBySig: invalid signature\"" + } + ], + "id": 3472, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8854:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8854:75:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3481, + "nodeType": "ExpressionStatement", + "src": "8854:75:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3483, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "8947:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8956:19:14", + "subExpression": { + "baseExpression": { + "id": 3484, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "8956:6:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3486, + "indexExpression": { + "id": 3485, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "8963:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8956:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8947:28:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a64656c656761746542795369673a20696e76616c6964206e6f6e6365", + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8977:37:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd", + "typeString": "literal_string \"dCLM8::delegateBySig: invalid nonce\"" + }, + "value": "dCLM8::delegateBySig: invalid nonce" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b525b9c8896776000914ccd9b57acc313e479a7cedbf13f90dcddebc75e3b6dd", + "typeString": "literal_string \"dCLM8::delegateBySig: invalid nonce\"" + } + ], + "id": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8939:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8939:76:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3491, + "nodeType": "ExpressionStatement", + "src": "8939:76:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3493, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "9033:5:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "9033:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3495, + "name": "expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3410, + "src": "9052:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9033:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a64656c656761746542795369673a207369676e61747572652065787069726564", + "id": 3497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9060:41:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df", + "typeString": "literal_string \"dCLM8::delegateBySig: signature expired\"" + }, + "value": "dCLM8::delegateBySig: signature expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e8e186b522c6a426d96f3388f8178c71fb7fea5af70e2135e4f10bf6bee166df", + "typeString": "literal_string \"dCLM8::delegateBySig: signature expired\"" + } + ], + "id": 3492, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9025:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9025:77:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3499, + "nodeType": "ExpressionStatement", + "src": "9025:77:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3501, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "9129:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3502, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3406, + "src": "9140:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3500, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3765, + "src": "9119:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9119:31:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 3418, + "id": 3504, + "nodeType": "Return", + "src": "9112:38:14" + } + ] + }, + "documentation": { + "id": 3404, + "nodeType": "StructuredDocumentation", + "src": "7945:412:14", + "text": " @notice Delegates votes from signatory to `delegatee`\n @param delegatee The address to delegate votes to\n @param nonce The contract state required to match the signature\n @param expiry The time at which to expire the signature\n @param v The recovery byte of the signature\n @param r Half of the ECDSA signature pair\n @param s Half of the ECDSA signature pair" + }, + "functionSelector": "c3cda520", + "id": 3506, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "delegateBySig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "mutability": "mutable", + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8385:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8385:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3408, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8404:10:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8404:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3410, + "mutability": "mutable", + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8416:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8416:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8429:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3411, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8429:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8438:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3413, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8438:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "8449:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3415, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8449:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8384:75:14" + }, + "returnParameters": { + "id": 3418, + "nodeType": "ParameterList", + "parameters": [], + "src": "8467:0:14" + }, + "scope": 4188, + "src": "8362:795:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3534, + "nodeType": "Block", + "src": "9424:146:14", + "statements": [ + { + "assignments": [ + 3515 + ], + "declarations": [ + { + "constant": false, + "id": 3515, + "mutability": "mutable", + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 3534, + "src": "9434:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3514, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "9434:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3519, + "initialValue": { + "baseExpression": { + "id": 3516, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3118, + "src": "9456:14:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 3518, + "indexExpression": { + "id": 3517, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3509, + "src": "9471:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9456:23:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9434:45:14" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3520, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "9496:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9511:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9496:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9562:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9496:67:14", + "trueExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3523, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "9515:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3525, + "indexExpression": { + "id": 3524, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3509, + "src": "9527:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9515:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3529, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3526, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "9536:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9536:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9515:38:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "9515:44:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3513, + "id": 3533, + "nodeType": "Return", + "src": "9489:74:14" + } + ] + }, + "documentation": { + "id": 3507, + "nodeType": "StructuredDocumentation", + "src": "9163:183:14", + "text": " @notice Gets the current votes balance for `account`\n @param account The address to get votes balance\n @return The number of current votes for `account`" + }, + "functionSelector": "b4b5ea57", + "id": 3535, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3509, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "9376:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9376:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9375:17:14" + }, + "returnParameters": { + "id": 3513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "9416:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3511, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "9416:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "9415:8:14" + }, + "scope": 4188, + "src": "9351:219:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3666, + "nodeType": "Block", + "src": "10079:1100:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3546, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3540, + "src": "10097:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3547, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10111:5:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "10111:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10097:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564", + "id": 3550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10125:42:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90", + "typeString": "literal_string \"dCLM8::getPriorVotes: not yet determined\"" + }, + "value": "dCLM8::getPriorVotes: not yet determined" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8cc9dcf3a7ad95cb7153a719a75076f8e003cdf8d2b26a6e9dcd582c3f41da90", + "typeString": "literal_string \"dCLM8::getPriorVotes: not yet determined\"" + } + ], + "id": 3545, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10089:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10089:79:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3552, + "nodeType": "ExpressionStatement", + "src": "10089:79:14" + }, + { + "assignments": [ + 3554 + ], + "declarations": [ + { + "constant": false, + "id": 3554, + "mutability": "mutable", + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 3666, + "src": "10179:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3553, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10179:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3558, + "initialValue": { + "baseExpression": { + "id": 3555, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3118, + "src": "10201:14:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 3557, + "indexExpression": { + "id": 3556, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "10216:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10201:23:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10179:45:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3559, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "10238:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10254:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10238:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3565, + "nodeType": "IfStatement", + "src": "10234:56:14", + "trueBody": { + "id": 3564, + "nodeType": "Block", + "src": "10257:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3544, + "id": 3563, + "nodeType": "Return", + "src": "10271:8:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3566, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "10347:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3568, + "indexExpression": { + "id": 3567, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "10359:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10347:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3572, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3569, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "10368:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10383:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10368:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10347:38:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3573, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 3103, + "src": "10347:48:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3574, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3540, + "src": "10399:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10347:63:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3586, + "nodeType": "IfStatement", + "src": "10343:145:14", + "trueBody": { + "id": 3585, + "nodeType": "Block", + "src": "10412:76:14", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3576, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "10433:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3578, + "indexExpression": { + "id": 3577, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "10445:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10433:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3582, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3579, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "10454:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10469:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10454:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10433:38:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "10433:44:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3544, + "id": 3584, + "nodeType": "Return", + "src": "10426:51:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3587, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "10546:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3589, + "indexExpression": { + "id": 3588, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "10558:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10546:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3591, + "indexExpression": { + "hexValue": "30", + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10567:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10546:23:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 3103, + "src": "10546:33:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3593, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3540, + "src": "10582:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10546:47:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3598, + "nodeType": "IfStatement", + "src": "10542:86:14", + "trueBody": { + "id": 3597, + "nodeType": "Block", + "src": "10595:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10616:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3544, + "id": 3596, + "nodeType": "Return", + "src": "10609:8:14" + } + ] + } + }, + { + "assignments": [ + 3600 + ], + "declarations": [ + { + "constant": false, + "id": 3600, + "mutability": "mutable", + "name": "lower", + "nodeType": "VariableDeclaration", + "scope": 3666, + "src": "10638:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3599, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10638:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3602, + "initialValue": { + "hexValue": "30", + "id": 3601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10638:16:14" + }, + { + "assignments": [ + 3604 + ], + "declarations": [ + { + "constant": false, + "id": 3604, + "mutability": "mutable", + "name": "upper", + "nodeType": "VariableDeclaration", + "scope": 3666, + "src": "10664:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3603, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10664:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3608, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3605, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "10679:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10694:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10679:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10664:31:14" + }, + { + "body": { + "id": 3657, + "nodeType": "Block", + "src": "10727:396:14", + "statements": [ + { + "assignments": [ + 3613 + ], + "declarations": [ + { + "constant": false, + "id": 3613, + "mutability": "mutable", + "name": "center", + "nodeType": "VariableDeclaration", + "scope": 3657, + "src": "10741:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3612, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10741:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3622, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3614, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3604, + "src": "10757:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3615, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3604, + "src": "10766:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3616, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "10774:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "10766:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 3618, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10765:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 3619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10783:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10765:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "10757:27:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10741:43:14" + }, + { + "assignments": [ + 3624 + ], + "declarations": [ + { + "constant": false, + "id": 3624, + "mutability": "mutable", + "name": "cp", + "nodeType": "VariableDeclaration", + "scope": 3657, + "src": "10825:20:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_memory_ptr", + "typeString": "struct DAOToken.Checkpoint" + }, + "typeName": { + "id": 3623, + "name": "Checkpoint", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3106, + "src": "10825:10:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage_ptr", + "typeString": "struct DAOToken.Checkpoint" + } + }, + "visibility": "internal" + } + ], + "id": 3630, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 3625, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "10848:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3627, + "indexExpression": { + "id": 3626, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "10860:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10848:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3629, + "indexExpression": { + "id": 3628, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3613, + "src": "10869:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10848:28:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10825:51:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3631, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3624, + "src": "10894:2:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_memory_ptr", + "typeString": "struct DAOToken.Checkpoint memory" + } + }, + "id": 3632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 3103, + "src": "10894:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3633, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3540, + "src": "10910:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10894:27:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3639, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3624, + "src": "10981:2:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_memory_ptr", + "typeString": "struct DAOToken.Checkpoint memory" + } + }, + "id": 3640, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 3103, + "src": "10981:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3641, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3540, + "src": "10996:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10981:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3654, + "nodeType": "Block", + "src": "11062:51:14", + "statements": [ + { + "expression": { + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3648, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3604, + "src": "11080:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3649, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3613, + "src": "11088:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11097:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11088:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "11080:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3653, + "nodeType": "ExpressionStatement", + "src": "11080:18:14" + } + ] + }, + "id": 3655, + "nodeType": "IfStatement", + "src": "10977:136:14", + "trueBody": { + "id": 3647, + "nodeType": "Block", + "src": "11009:47:14", + "statements": [ + { + "expression": { + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3643, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "11027:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3644, + "name": "center", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3613, + "src": "11035:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "11027:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3646, + "nodeType": "ExpressionStatement", + "src": "11027:14:14" + } + ] + } + }, + "id": 3656, + "nodeType": "IfStatement", + "src": "10890:223:14", + "trueBody": { + "id": 3638, + "nodeType": "Block", + "src": "10923:48:14", + "statements": [ + { + "expression": { + "expression": { + "id": 3635, + "name": "cp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3624, + "src": "10948:2:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_memory_ptr", + "typeString": "struct DAOToken.Checkpoint memory" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "10948:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3544, + "id": 3637, + "nodeType": "Return", + "src": "10941:15:14" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3609, + "name": "upper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3604, + "src": "10712:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3610, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "10720:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "10712:13:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3658, + "nodeType": "WhileStatement", + "src": "10705:418:14" + }, + { + "expression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3659, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "11139:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3661, + "indexExpression": { + "id": 3660, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "11151:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11139:20:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3663, + "indexExpression": { + "id": 3662, + "name": "lower", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "11160:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11139:27:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "11139:33:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 3544, + "id": 3665, + "nodeType": "Return", + "src": "11132:40:14" + } + ] + }, + "documentation": { + "id": 3536, + "nodeType": "StructuredDocumentation", + "src": "9576:411:14", + "text": " @notice Determine the prior number of votes for an account as of a block number\n @dev Block number must be a finalized block or else this function will revert to prevent misinformation.\n @param account The address of the account to check\n @param blockNumber The block number to get the vote balance at\n @return The number of votes the account had as of the given block" + }, + "functionSelector": "782d6fe1", + "id": 3667, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3538, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3667, + "src": "10015:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10015:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3540, + "mutability": "mutable", + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 3667, + "src": "10032:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3539, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10032:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10014:35:14" + }, + "returnParameters": { + "id": 3544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3543, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3667, + "src": "10071:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3542, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "10071:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "10070:8:14" + }, + "scope": 4188, + "src": "9992:1187:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3726, + "nodeType": "Block", + "src": "11241:443:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3675, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3669, + "src": "11259:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11270:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11270:7:14", + "typeDescriptions": {} + } + }, + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11270:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11259:21:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a5f6275726e3a206275726e2066726f6d20746865207a65726f2061646472657373", + "id": 3681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11282:42:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882", + "typeString": "literal_string \"dCLM8::_burn: burn from the zero address\"" + }, + "value": "dCLM8::_burn: burn from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fd060938ddfc76e39d33ac53660bf83dba39e3fb052f1a01191c89d2f7fe1882", + "typeString": "literal_string \"dCLM8::_burn: burn from the zero address\"" + } + ], + "id": 3674, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11251:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11251:74:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3683, + "nodeType": "ExpressionStatement", + "src": "11251:74:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11343:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11343:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3687, + "name": "governor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3084, + "src": "11357:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11343:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a5f6275726e3a206d75737420626520676f7665726e6f72", + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11367:32:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550", + "typeString": "literal_string \"dCLM8::_burn: must be governor\"" + }, + "value": "dCLM8::_burn: must be governor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f59ad81e8c40033cf1ab5f3affcbc4e72a1b2fe1b524266397589ef95c965550", + "typeString": "literal_string \"dCLM8::_burn: must be governor\"" + } + ], + "id": 3684, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11335:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11335:65:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3691, + "nodeType": "ExpressionStatement", + "src": "11335:65:14" + }, + { + "assignments": [ + 3693 + ], + "declarations": [ + { + "constant": false, + "id": 3693, + "mutability": "mutable", + "name": "accountBalance", + "nodeType": "VariableDeclaration", + "scope": 3726, + "src": "11411:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3692, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11411:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3697, + "initialValue": { + "baseExpression": { + "id": 3694, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "11435:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3696, + "indexExpression": { + "id": 3695, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3669, + "src": "11444:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11435:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11411:41:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3699, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "11470:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 3700, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "11488:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11470:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a5f6275726e3a206275726e20616d6f756e7420657863656564732062616c616e6365", + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11496:43:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0", + "typeString": "literal_string \"dCLM8::_burn: burn amount exceeds balance\"" + }, + "value": "dCLM8::_burn: burn amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0bfe502dd0cc844940e0a83dfac01ef569130fbf0779095f3f569f2e707c2ad0", + "typeString": "literal_string \"dCLM8::_burn: burn amount exceeds balance\"" + } + ], + "id": 3698, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11462:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11462:78:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3704, + "nodeType": "ExpressionStatement", + "src": "11462:78:14" + }, + { + "expression": { + "id": 3711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3705, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "11550:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3707, + "indexExpression": { + "id": 3706, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3669, + "src": "11559:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11550:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3708, + "name": "accountBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "11570:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3709, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "11587:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11570:23:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11550:43:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3712, + "nodeType": "ExpressionStatement", + "src": "11550:43:14" + }, + { + "expression": { + "id": 3715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3713, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "11603:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 3714, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "11618:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11603:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3716, + "nodeType": "ExpressionStatement", + "src": "11603:21:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3718, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3669, + "src": "11649:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11666:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11658:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11658:7:14", + "typeDescriptions": {} + } + }, + "id": 3722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11658:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3723, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "11670:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3717, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3162, + "src": "11640:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11640:37:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3725, + "nodeType": "EmitStatement", + "src": "11635:42:14" + } + ] + }, + "functionSelector": "72d3ee9e", + "id": 3727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3669, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 3727, + "src": "11200:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11200:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3671, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3727, + "src": "11217:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3670, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11217:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "11199:32:14" + }, + "returnParameters": { + "id": 3673, + "nodeType": "ParameterList", + "parameters": [], + "src": "11241:0:14" + }, + "scope": 4188, + "src": "11185:499:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3764, + "nodeType": "Block", + "src": "11756:301:14", + "statements": [ + { + "assignments": [ + 3735 + ], + "declarations": [ + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "currentDelegate", + "nodeType": "VariableDeclaration", + "scope": 3764, + "src": "11766:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11766:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3739, + "initialValue": { + "baseExpression": { + "id": 3736, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "11792:9:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3738, + "indexExpression": { + "id": 3737, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3729, + "src": "11802:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11792:20:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11766:46:14" + }, + { + "assignments": [ + 3741 + ], + "declarations": [ + { + "constant": false, + "id": 3741, + "mutability": "mutable", + "name": "delegatorBalance", + "nodeType": "VariableDeclaration", + "scope": 3764, + "src": "11822:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3740, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11822:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3745, + "initialValue": { + "baseExpression": { + "id": 3742, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "11848:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3744, + "indexExpression": { + "id": 3743, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3729, + "src": "11857:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11848:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11822:45:14" + }, + { + "expression": { + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3746, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "11877:9:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3748, + "indexExpression": { + "id": 3747, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3729, + "src": "11887:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11877:20:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3749, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3731, + "src": "11900:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11877:32:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3751, + "nodeType": "ExpressionStatement", + "src": "11877:32:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3753, + "name": "delegator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3729, + "src": "11941:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3754, + "name": "currentDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "11952:15:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3755, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3731, + "src": "11969:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3752, + "name": "DelegateChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "11925:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11925:54:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3757, + "nodeType": "EmitStatement", + "src": "11920:59:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3759, + "name": "currentDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "12005:15:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3760, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3731, + "src": "12022:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3761, + "name": "delegatorBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3741, + "src": "12033:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3758, + "name": "_moveDelegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3960, + "src": "11990:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11990:60:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "11990:60:14" + } + ] + }, + "id": 3765, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_delegate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3729, + "mutability": "mutable", + "name": "delegator", + "nodeType": "VariableDeclaration", + "scope": 3765, + "src": "11709:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11709:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3731, + "mutability": "mutable", + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 3765, + "src": "11728:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11728:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11708:38:14" + }, + "returnParameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [], + "src": "11756:0:14" + }, + "scope": 4188, + "src": "11690:367:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3850, + "nodeType": "Block", + "src": "12138:752:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3775, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "12156:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12171:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12163:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12163:7:14", + "typeDescriptions": {} + } + }, + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12163:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12156:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373", + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12175:63:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d", + "typeString": "literal_string \"dCLM8::_transferTokens: cannot transfer from the zero address\"" + }, + "value": "dCLM8::_transferTokens: cannot transfer from the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e631eedf77802916752e84d07eea94a0fc22ead82db2cffcb17e3f5ecf4f4b0d", + "typeString": "literal_string \"dCLM8::_transferTokens: cannot transfer from the zero address\"" + } + ], + "id": 3774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12148:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12148:91:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3783, + "nodeType": "ExpressionStatement", + "src": "12148:91:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3785, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12257:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12272:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12264:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12264:7:14", + "typeDescriptions": {} + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12264:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12257:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12276:61:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092", + "typeString": "literal_string \"dCLM8::_transferTokens: cannot transfer to the zero address\"" + }, + "value": "dCLM8::_transferTokens: cannot transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_68d0e2a65b1c140f131d8738feb2ab477bfe8b6607948421b316e2b6dfe3b092", + "typeString": "literal_string \"dCLM8::_transferTokens: cannot transfer to the zero address\"" + } + ], + "id": 3784, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12249:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12249:89:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3793, + "nodeType": "ExpressionStatement", + "src": "12249:89:14" + }, + { + "expression": { + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3794, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "12349:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3796, + "indexExpression": { + "id": 3795, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "12358:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12349:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 3798, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "12371:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3800, + "indexExpression": { + "id": 3799, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "12380:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12371:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3801, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "12386:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "hexValue": "64434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", + "id": 3802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:57:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_18541abe246f853af7fa797b16d0bd7eb249b5d100e1f8c527d5ace6c959292d", + "typeString": "literal_string \"dCLM8::_transferTokens: transfer amount exceeds balance\"" + }, + "value": "dCLM8::_transferTokens: transfer amount exceeds balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_18541abe246f853af7fa797b16d0bd7eb249b5d100e1f8c527d5ace6c959292d", + "typeString": "literal_string \"dCLM8::_transferTokens: transfer amount exceeds balance\"" + } + ], + "id": 3797, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "12365:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12365:87:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12349:103:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3805, + "nodeType": "ExpressionStatement", + "src": "12349:103:14" + }, + { + "expression": { + "id": 3816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3806, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "12462:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3808, + "indexExpression": { + "id": 3807, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12471:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12462:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 3810, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3096, + "src": "12484:8:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint96_$", + "typeString": "mapping(address => uint96)" + } + }, + "id": 3812, + "indexExpression": { + "id": 3811, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12493:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12484:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3813, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "12499:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "hexValue": "64434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773", + "id": 3814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12507:51:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1d9d836e6f9a8453f17e1e06fedc80c8854b5ba8f395c88d68651a92e33796a0", + "typeString": "literal_string \"dCLM8::_transferTokens: transfer amount overflows\"" + }, + "value": "dCLM8::_transferTokens: transfer amount overflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_1d9d836e6f9a8453f17e1e06fedc80c8854b5ba8f395c88d68651a92e33796a0", + "typeString": "literal_string \"dCLM8::_transferTokens: transfer amount overflows\"" + } + ], + "id": 3809, + "name": "add96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4108, + "src": "12478:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12478:81:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "12462:97:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 3817, + "nodeType": "ExpressionStatement", + "src": "12462:97:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3819, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "12583:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3820, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12588:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3821, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "12593:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3818, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3162, + "src": "12574:8:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12574:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3823, + "nodeType": "EmitStatement", + "src": "12569:31:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 3824, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "12725:9:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3826, + "indexExpression": { + "id": 3825, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12735:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12725:14:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12751:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12743:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3827, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12743:7:14", + "typeDescriptions": {} + } + }, + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12743:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12725:28:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3848, + "nodeType": "Block", + "src": "12805:79:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3839, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "12834:9:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3841, + "indexExpression": { + "id": 3840, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "12844:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12834:14:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 3842, + "name": "delegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "12850:9:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 3844, + "indexExpression": { + "id": 3843, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12860:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12850:14:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3845, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "12866:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3838, + "name": "_moveDelegates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3960, + "src": "12819:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,address,uint96)" + } + }, + "id": 3846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12819:54:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3847, + "nodeType": "ExpressionStatement", + "src": "12819:54:14" + } + ] + }, + "id": 3849, + "nodeType": "IfStatement", + "src": "12721:163:14", + "trueBody": { + "id": 3837, + "nodeType": "Block", + "src": "12755:44:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3833, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12779:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3834, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3769, + "src": "12784:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3832, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3765, + "src": "12769:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12769:19:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3836, + "nodeType": "ExpressionStatement", + "src": "12769:19:14" + } + ] + } + } + ] + }, + "id": 3851, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3767, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "12088:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12088:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3769, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "12101:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12101:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3771, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3851, + "src": "12114:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3770, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12114:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "12087:41:14" + }, + "returnParameters": { + "id": 3773, + "nodeType": "ParameterList", + "parameters": [], + "src": "12138:0:14" + }, + "scope": 4188, + "src": "12063:827:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3959, + "nodeType": "Block", + "src": "12976:845:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3860, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3853, + "src": "12990:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 3861, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3855, + "src": "13000:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12990:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 3865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3863, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "13010:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13019:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13010:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12990:30:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3958, + "nodeType": "IfStatement", + "src": "12986:829:14", + "trueBody": { + "id": 3957, + "nodeType": "Block", + "src": "13022:793:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3867, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3853, + "src": "13040:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13058:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13050:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13050:7:14", + "typeDescriptions": {} + } + }, + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13050:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13040:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3911, + "nodeType": "IfStatement", + "src": "13036:378:14", + "trueBody": { + "id": 3910, + "nodeType": "Block", + "src": "13062:352:14", + "statements": [ + { + "assignments": [ + 3874 + ], + "declarations": [ + { + "constant": false, + "id": 3874, + "mutability": "mutable", + "name": "srcRepNum", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "13080:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3873, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13080:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3878, + "initialValue": { + "baseExpression": { + "id": 3875, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3118, + "src": "13099:14:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 3877, + "indexExpression": { + "id": 3876, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3853, + "src": "13114:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13099:22:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13080:41:14" + }, + { + "assignments": [ + 3880 + ], + "declarations": [ + { + "constant": false, + "id": 3880, + "mutability": "mutable", + "name": "srcRepOld", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "13139:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3879, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13139:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3894, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3881, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "13158:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13170:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13158:13:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13217:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13158:60:14", + "trueExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3884, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "13174:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3886, + "indexExpression": { + "id": 3885, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3853, + "src": "13186:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13174:19:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3890, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3887, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "13194:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13206:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13194:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13174:34:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3891, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "13174:40:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13139:79:14" + }, + { + "assignments": [ + 3896 + ], + "declarations": [ + { + "constant": false, + "id": 3896, + "mutability": "mutable", + "name": "srcRepNew", + "nodeType": "VariableDeclaration", + "scope": 3910, + "src": "13236:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3895, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13236:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3902, + "initialValue": { + "arguments": [ + { + "id": 3898, + "name": "srcRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "13261:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3899, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "13272:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "hexValue": "64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773", + "id": 3900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13280:43:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ad37765c040af882f3580a15ed52232f11db3398100244360778f02050d79527", + "typeString": "literal_string \"dCLM8::_moveVotes: vote amount underflows\"" + }, + "value": "dCLM8::_moveVotes: vote amount underflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_ad37765c040af882f3580a15ed52232f11db3398100244360778f02050d79527", + "typeString": "literal_string \"dCLM8::_moveVotes: vote amount underflows\"" + } + ], + "id": 3897, + "name": "sub96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "13255:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 3901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13255:69:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13236:88:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3904, + "name": "srcRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3853, + "src": "13359:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3905, + "name": "srcRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "13367:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 3906, + "name": "srcRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "13378:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3907, + "name": "srcRepNew", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3896, + "src": "13389:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3903, + "name": "_writeCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4033, + "src": "13342:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$", + "typeString": "function (address,uint32,uint96,uint96)" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13342:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3909, + "nodeType": "ExpressionStatement", + "src": "13342:57:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3912, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3855, + "src": "13432:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13450:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13442:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3913, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13442:7:14", + "typeDescriptions": {} + } + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13442:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13432:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3956, + "nodeType": "IfStatement", + "src": "13428:377:14", + "trueBody": { + "id": 3955, + "nodeType": "Block", + "src": "13454:351:14", + "statements": [ + { + "assignments": [ + 3919 + ], + "declarations": [ + { + "constant": false, + "id": 3919, + "mutability": "mutable", + "name": "dstRepNum", + "nodeType": "VariableDeclaration", + "scope": 3955, + "src": "13472:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3918, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13472:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3923, + "initialValue": { + "baseExpression": { + "id": 3920, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3118, + "src": "13491:14:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 3922, + "indexExpression": { + "id": 3921, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3855, + "src": "13506:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13491:22:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13472:41:14" + }, + { + "assignments": [ + 3925 + ], + "declarations": [ + { + "constant": false, + "id": 3925, + "mutability": "mutable", + "name": "dstRepOld", + "nodeType": "VariableDeclaration", + "scope": 3955, + "src": "13531:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3924, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13531:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3939, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3926, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3919, + "src": "13550:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13562:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13550:13:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13609:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13550:60:14", + "trueExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3929, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "13566:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3931, + "indexExpression": { + "id": 3930, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3855, + "src": "13578:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13566:19:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3935, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3932, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3919, + "src": "13586:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13598:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13586:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13566:34:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "13566:40:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13531:79:14" + }, + { + "assignments": [ + 3941 + ], + "declarations": [ + { + "constant": false, + "id": 3941, + "mutability": "mutable", + "name": "dstRepNew", + "nodeType": "VariableDeclaration", + "scope": 3955, + "src": "13628:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3940, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13628:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 3947, + "initialValue": { + "arguments": [ + { + "id": 3943, + "name": "dstRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3925, + "src": "13653:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3944, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "13664:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "hexValue": "64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773", + "id": 3945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13672:42:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_046e5ef69e1e51614d00749ab14bad1fcf0b71a3a2d1d8571daa01cb944faabc", + "typeString": "literal_string \"dCLM8::_moveVotes: vote amount overflows\"" + }, + "value": "dCLM8::_moveVotes: vote amount overflows" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_stringliteral_046e5ef69e1e51614d00749ab14bad1fcf0b71a3a2d1d8571daa01cb944faabc", + "typeString": "literal_string \"dCLM8::_moveVotes: vote amount overflows\"" + } + ], + "id": 3942, + "name": "add96", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4108, + "src": "13647:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint96_$_t_uint96_$_t_string_memory_ptr_$returns$_t_uint96_$", + "typeString": "function (uint96,uint96,string memory) pure returns (uint96)" + } + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13647:68:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13628:87:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3949, + "name": "dstRep", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3855, + "src": "13750:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3950, + "name": "dstRepNum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3919, + "src": "13758:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 3951, + "name": "dstRepOld", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3925, + "src": "13769:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 3952, + "name": "dstRepNew", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3941, + "src": "13780:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 3948, + "name": "_writeCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4033, + "src": "13733:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint32_$_t_uint96_$_t_uint96_$returns$__$", + "typeString": "function (address,uint32,uint96,uint96)" + } + }, + "id": 3953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13733:57:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3954, + "nodeType": "ExpressionStatement", + "src": "13733:57:14" + } + ] + } + } + ] + } + } + ] + }, + "id": 3960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_moveDelegates", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3853, + "mutability": "mutable", + "name": "srcRep", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "12920:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12920:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3855, + "mutability": "mutable", + "name": "dstRep", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "12936:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12936:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "12952:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3856, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "12952:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "12919:47:14" + }, + "returnParameters": { + "id": 3859, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:14" + }, + "scope": 4188, + "src": "12896:925:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4032, + "nodeType": "Block", + "src": "13936:510:14", + "statements": [ + { + "assignments": [ + 3972 + ], + "declarations": [ + { + "constant": false, + "id": 3972, + "mutability": "mutable", + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 4032, + "src": "13944:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3971, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13944:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3978, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 3974, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13972:5:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "13972:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "64434c4d383a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473", + "id": 3976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13986:55:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d9f7e73f555c8aa48f1a81e5db2fd75b322a6e4b229e71701288554aa900fca8", + "typeString": "literal_string \"dCLM8::_writeCheckpoint: block number exceeds 32 bits\"" + }, + "value": "dCLM8::_writeCheckpoint: block number exceeds 32 bits" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_d9f7e73f555c8aa48f1a81e5db2fd75b322a6e4b229e71701288554aa900fca8", + "typeString": "literal_string \"dCLM8::_writeCheckpoint: block number exceeds 32 bits\"" + } + ], + "id": 3973, + "name": "safe32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "13965:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint256,string memory) pure returns (uint32)" + } + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13965:77:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13944:98:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3979, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3964, + "src": "14055:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14070:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14055:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3982, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "14075:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3984, + "indexExpression": { + "id": 3983, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3962, + "src": "14087:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14075:22:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3985, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3964, + "src": "14098:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14113:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14098:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14075:40:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 3989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 3103, + "src": "14075:50:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3990, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "14129:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14075:65:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14055:85:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4024, + "nodeType": "Block", + "src": "14226:149:14", + "statements": [ + { + "expression": { + "id": 4014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 4005, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "14238:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 4008, + "indexExpression": { + "id": 4006, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3962, + "src": "14250:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14238:22:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 4009, + "indexExpression": { + "id": 4007, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3964, + "src": "14261:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14238:36:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4011, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "14288:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 4012, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3968, + "src": "14301:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 4010, + "name": "Checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3106, + "src": "14277:10:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Checkpoint_$3106_storage_ptr_$", + "typeString": "type(struct DAOToken.Checkpoint storage pointer)" + } + }, + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14277:33:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_memory_ptr", + "typeString": "struct DAOToken.Checkpoint memory" + } + }, + "src": "14238:72:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 4015, + "nodeType": "ExpressionStatement", + "src": "14238:72:14" + }, + { + "expression": { + "id": 4022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4016, + "name": "numCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3118, + "src": "14322:14:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint32_$", + "typeString": "mapping(address => uint32)" + } + }, + "id": 4018, + "indexExpression": { + "id": 4017, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3962, + "src": "14337:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14322:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4019, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3964, + "src": "14350:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14350:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14322:44:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 4023, + "nodeType": "ExpressionStatement", + "src": "14322:44:14" + } + ] + }, + "id": 4025, + "nodeType": "IfStatement", + "src": "14051:324:14", + "trueBody": { + "id": 4004, + "nodeType": "Block", + "src": "14142:78:14", + "statements": [ + { + "expression": { + "id": 4002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 3993, + "name": "checkpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "14154:11:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$_$", + "typeString": "mapping(address => mapping(uint32 => struct DAOToken.Checkpoint storage ref))" + } + }, + "id": 3998, + "indexExpression": { + "id": 3994, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3962, + "src": "14166:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14154:22:14", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_Checkpoint_$3106_storage_$", + "typeString": "mapping(uint32 => struct DAOToken.Checkpoint storage ref)" + } + }, + "id": 3999, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3995, + "name": "nCheckpoints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3964, + "src": "14177:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14192:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14177:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14154:40:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Checkpoint_$3106_storage", + "typeString": "struct DAOToken.Checkpoint storage ref" + } + }, + "id": 4000, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 3105, + "src": "14154:46:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4001, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3968, + "src": "14203:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "14154:57:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 4003, + "nodeType": "ExpressionStatement", + "src": "14154:57:14" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 4027, + "name": "delegatee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3962, + "src": "14409:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4028, + "name": "oldVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3966, + "src": "14420:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + { + "id": 4029, + "name": "newVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3968, + "src": "14430:8:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 4026, + "name": "DelegateVotesChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3153, + "src": "14388:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 4030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14388:51:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4031, + "nodeType": "EmitStatement", + "src": "14383:56:14" + } + ] + }, + "id": 4033, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_writeCheckpoint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3962, + "mutability": "mutable", + "name": "delegatee", + "nodeType": "VariableDeclaration", + "scope": 4033, + "src": "13853:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3961, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13853:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3964, + "mutability": "mutable", + "name": "nCheckpoints", + "nodeType": "VariableDeclaration", + "scope": 4033, + "src": "13872:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3963, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13872:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3966, + "mutability": "mutable", + "name": "oldVotes", + "nodeType": "VariableDeclaration", + "scope": 4033, + "src": "13893:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3965, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13893:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3968, + "mutability": "mutable", + "name": "newVotes", + "nodeType": "VariableDeclaration", + "scope": 4033, + "src": "13910:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 3967, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13910:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "13852:74:14" + }, + "returnParameters": { + "id": 3970, + "nodeType": "ParameterList", + "parameters": [], + "src": "13936:0:14" + }, + "scope": 4188, + "src": "13827:619:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4056, + "nodeType": "Block", + "src": "14535:75:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4043, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4035, + "src": "14553:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 4046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14557:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 4045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14560:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14557:5:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "14553:9:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 4048, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "14564:12:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4042, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14545:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14545:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4050, + "nodeType": "ExpressionStatement", + "src": "14545:32:14" + }, + { + "expression": { + "arguments": [ + { + "id": 4053, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4035, + "src": "14601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14594:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 4051, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14594:6:14", + "typeDescriptions": {} + } + }, + "id": 4054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14594:9:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 4041, + "id": 4055, + "nodeType": "Return", + "src": "14587:16:14" + } + ] + }, + "id": 4057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safe32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4035, + "mutability": "mutable", + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 4057, + "src": "14468:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4034, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14468:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4037, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 4057, + "src": "14476:26:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4036, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14476:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14467:36:14" + }, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4040, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4057, + "src": "14527:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4039, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14527:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "14526:8:14" + }, + "scope": 4188, + "src": "14452:158:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4080, + "nodeType": "Block", + "src": "14699:75:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4067, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4059, + "src": "14717:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_79228162514264337593543950336_by_1", + "typeString": "int_const 79228162514264337593543950336" + }, + "id": 4070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14721:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3936", + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14724:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "14721:5:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_79228162514264337593543950336_by_1", + "typeString": "int_const 79228162514264337593543950336" + } + }, + "src": "14717:9:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 4072, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4061, + "src": "14728:12:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4066, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14709:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14709:32:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4074, + "nodeType": "ExpressionStatement", + "src": "14709:32:14" + }, + { + "expression": { + "arguments": [ + { + "id": 4077, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4059, + "src": "14765:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14758:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 4075, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14758:6:14", + "typeDescriptions": {} + } + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14758:9:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 4065, + "id": 4079, + "nodeType": "Return", + "src": "14751:16:14" + } + ] + }, + "id": 4081, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safe96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4059, + "mutability": "mutable", + "name": "n", + "nodeType": "VariableDeclaration", + "scope": 4081, + "src": "14632:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4058, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14632:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4061, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 4081, + "src": "14640:26:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4060, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14640:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14631:36:14" + }, + "returnParameters": { + "id": 4065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4064, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4081, + "src": "14691:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4063, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14691:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "14690:8:14" + }, + "scope": 4188, + "src": "14616:158:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4107, + "nodeType": "Block", + "src": "14874:90:14", + "statements": [ + { + "assignments": [ + 4093 + ], + "declarations": [ + { + "constant": false, + "id": 4093, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 4107, + "src": "14884:8:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4092, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14884:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 4097, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 4096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4094, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4083, + "src": "14895:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4095, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4085, + "src": "14899:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "14895:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14884:16:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4099, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "14918:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 4100, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4083, + "src": "14923:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "14918:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 4102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4087, + "src": "14926:12:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14910:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14910:29:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "14910:29:14" + }, + { + "expression": { + "id": 4105, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "14956:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 4091, + "id": 4106, + "nodeType": "Return", + "src": "14949:8:14" + } + ] + }, + "id": 4108, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4083, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "14795:8:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4082, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14795:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4085, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "14805:8:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4084, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14805:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4087, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "14815:26:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4086, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14815:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14794:48:14" + }, + "returnParameters": { + "id": 4091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4090, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "14866:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4089, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14866:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "14865:8:14" + }, + "scope": 4188, + "src": "14780:184:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4130, + "nodeType": "Block", + "src": "15064:68:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4120, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "15082:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4121, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "15087:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "15082:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 4123, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4114, + "src": "15090:12:14", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4119, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15074:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15074:29:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4125, + "nodeType": "ExpressionStatement", + "src": "15074:29:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 4128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4126, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "15120:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 4127, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4112, + "src": "15124:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "15120:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 4118, + "id": 4129, + "nodeType": "Return", + "src": "15113:12:14" + } + ] + }, + "id": 4131, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub96", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4110, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "14985:8:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4109, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14985:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4112, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "14995:8:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4111, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14995:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4114, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "15005:26:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4113, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15005:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14984:48:14" + }, + "returnParameters": { + "id": 4118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4117, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4131, + "src": "15056:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4116, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "15056:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "15055:8:14" + }, + "scope": 4188, + "src": "14970:162:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4142, + "nodeType": "Block", + "src": "15189:98:14", + "statements": [ + { + "assignments": [ + 4137 + ], + "declarations": [ + { + "constant": false, + "id": 4137, + "mutability": "mutable", + "name": "chainId", + "nodeType": "VariableDeclaration", + "scope": 4142, + "src": "15199:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4138, + "nodeType": "VariableDeclarationStatement", + "src": "15199:15:14" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "15233:24:14", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15235:20:14", + "value": { + "arguments": [], + "functionName": { + "name": "chainid", + "nodeType": "YulIdentifier", + "src": "15246:7:14" + }, + "nodeType": "YulFunctionCall", + "src": "15246:9:14" + }, + "variableNames": [ + { + "name": "chainId", + "nodeType": "YulIdentifier", + "src": "15235:7:14" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 4137, + "isOffset": false, + "isSlot": false, + "src": "15235:7:14", + "valueSize": 1 + } + ], + "id": 4139, + "nodeType": "InlineAssembly", + "src": "15224:33:14" + }, + { + "expression": { + "id": 4140, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4137, + "src": "15273:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4135, + "id": 4141, + "nodeType": "Return", + "src": "15266:14:14" + } + ] + }, + "id": 4143, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChainId", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4132, + "nodeType": "ParameterList", + "parameters": [], + "src": "15157:2:14" + }, + "returnParameters": { + "id": 4135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4134, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4143, + "src": "15183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15182:6:14" + }, + "scope": 4188, + "src": "15138:149:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4150, + "nodeType": "Block", + "src": "15348:35:14", + "statements": [ + { + "expression": { + "id": 4148, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "15365:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4147, + "id": 4149, + "nodeType": "Return", + "src": "15358:18:14" + } + ] + }, + "functionSelector": "c4e41b22", + "id": 4151, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4144, + "nodeType": "ParameterList", + "parameters": [], + "src": "15316:2:14" + }, + "returnParameters": { + "id": 4147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4146, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4151, + "src": "15342:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4145, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15342:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15341:6:14" + }, + "scope": 4188, + "src": "15293:90:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4158, + "nodeType": "Block", + "src": "15449:37:14", + "statements": [ + { + "expression": { + "id": 4156, + "name": "initialHolder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3077, + "src": "15466:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4155, + "id": 4157, + "nodeType": "Return", + "src": "15459:20:14" + } + ] + }, + "functionSelector": "ae80d9de", + "id": 4159, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getInitialHolder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4152, + "nodeType": "ParameterList", + "parameters": [], + "src": "15414:2:14" + }, + "returnParameters": { + "id": 4155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4154, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4159, + "src": "15440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15440:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15439:9:14" + }, + "scope": 4188, + "src": "15389:97:14", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4186, + "nodeType": "Block", + "src": "15541:224:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4165, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15559:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15559:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4167, + "name": "initialHolder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3077, + "src": "15573:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15559:27:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d383a3a736574476f7665726e6f723a206d75737420626520696e697469616c20686f6c646572", + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15588:44:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011", + "typeString": "literal_string \"dCLM8::setGovernor: must be initial holder\"" + }, + "value": "dCLM8::setGovernor: must be initial holder" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_27eac2f14a7a1ffe4ce21697766231448493795cbb02d7ad563beef264295011", + "typeString": "literal_string \"dCLM8::setGovernor: must be initial holder\"" + } + ], + "id": 4164, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15551:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15551:82:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4171, + "nodeType": "ExpressionStatement", + "src": "15551:82:14" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4173, + "name": "governor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3084, + "src": "15651:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15671:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15663:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15663:7:14", + "typeDescriptions": {} + } + }, + "id": 4177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15663:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "15651:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "64434c4d3a3a736574476f7665726e6f723a20676f7665726e6f722063616e206f6e6c7920626520736574206f6e6365", + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15675:50:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8", + "typeString": "literal_string \"dCLM::setGovernor: governor can only be set once\"" + }, + "value": "dCLM::setGovernor: governor can only be set once" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a2784fd339dea9c8336df8b2d9b9eafd30f816d0be5c67295a3322e08f684d8", + "typeString": "literal_string \"dCLM::setGovernor: governor can only be set once\"" + } + ], + "id": 4172, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15643:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15643:83:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4181, + "nodeType": "ExpressionStatement", + "src": "15643:83:14" + }, + { + "expression": { + "id": 4184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4182, + "name": "governor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3084, + "src": "15736:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4183, + "name": "newGovernor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "15747:11:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15736:22:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4185, + "nodeType": "ExpressionStatement", + "src": "15736:22:14" + } + ] + }, + "functionSelector": "c42cf535", + "id": 4187, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setGovernor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4161, + "mutability": "mutable", + "name": "newGovernor", + "nodeType": "VariableDeclaration", + "scope": 4187, + "src": "15513:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15513:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15512:21:14" + }, + "returnParameters": { + "id": 4163, + "nodeType": "ParameterList", + "parameters": [], + "src": "15541:0:14" + }, + "scope": 4188, + "src": "15492:273:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 4189, + "src": "1755:14013:14" + } + ], + "src": "0:15769:14" + }, + "id": 14 + }, + "src/main/solidity/net-emissions-token-network/Governance/Governor.sol": { + "ast": { + "absolutePath": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "exportedSymbols": { + "Dclm8Interface": [ + 5713 + ], + "Governor": [ + 5615 + ], + "TimelockInterface": [ + 5679 + ] + }, + "id": 5714, + "license": "BSD-3-Clause", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4190, + "literals": [ + "solidity", + "^", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:15" + }, + { + "id": 4191, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 5615, + "linearizedBaseContracts": [ + 5615 + ], + "name": "Governor", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 4192, + "nodeType": "StructuredDocumentation", + "src": "1788:37:15", + "text": "@notice The name of this contract" + }, + "functionSelector": "06fdde03", + "id": 4195, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "1830:52:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4193, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1830:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "436c696d6174652044414f20476f7665726e6f72", + "id": 4194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1860:22:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c91d7024f1084cf2cbc672fa7c9487148f930f2547c197a0c5a286cc6f4923ea", + "typeString": "literal_string \"Climate DAO Governor\"" + }, + "value": "Climate DAO Governor" + }, + "visibility": "public" + }, + { + "body": { + "id": 4232, + "nodeType": "Block", + "src": "2071:452:15", + "statements": [ + { + "assignments": [ + 4202 + ], + "declarations": [ + { + "constant": false, + "id": 4202, + "mutability": "mutable", + "name": "initialHolderBalance", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "2081:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4201, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2081:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4209, + "initialValue": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 4205, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "2125:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getInitialHolder", + "nodeType": "MemberAccess", + "referencedDeclaration": 5705, + "src": "2125:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_address_$", + "typeString": "function () pure external returns (address)" + } + }, + "id": 4207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2125:24:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 4203, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "2109:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5700, + "src": "2109:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2109:41:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2081:69:15" + }, + { + "assignments": [ + 4211 + ], + "declarations": [ + { + "constant": false, + "id": 4211, + "mutability": "mutable", + "name": "daoTokensInCirculation", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "2160:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4210, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2160:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4217, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 4212, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "2190:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTotalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 5693, + "src": "2190:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_pure$__$returns$_t_uint256_$", + "typeString": "function () pure external returns (uint256)" + } + }, + "id": 4214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2190:22:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 4215, + "name": "initialHolderBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "2215:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2190:45:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2160:75:15" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4218, + "name": "daoTokensInCirculation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "2329:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 4219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2355:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2329:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4229, + "nodeType": "IfStatement", + "src": "2325:105:15", + "trueBody": { + "id": 4228, + "nodeType": "Block", + "src": "2358:72:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4223, + "name": "daoTokensInCirculation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "2391:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3235", + "id": 4224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:2:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "25" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 4222, + "name": "div256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "2384:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:34:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4221, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5602, + "src": "2379:4:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2379:40:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4200, + "id": 4227, + "nodeType": "Return", + "src": "2372:47:15" + } + ] + } + }, + { + "expression": { + "hexValue": "363332343535353332303333", + "id": 4230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2504:12:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_632455532033_by_1", + "typeString": "int_const 632455532033" + }, + "value": "632455532033" + }, + "functionReturnParameters": 4200, + "id": 4231, + "nodeType": "Return", + "src": "2497:19:15" + } + ] + }, + "documentation": { + "id": 4196, + "nodeType": "StructuredDocumentation", + "src": "1889:127:15", + "text": "@notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed" + }, + "functionSelector": "24bc1a64", + "id": 4233, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quorumVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4197, + "nodeType": "ParameterList", + "parameters": [], + "src": "2041:2:15" + }, + "returnParameters": { + "id": 4200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4233, + "src": "2065:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2065:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2064:6:15" + }, + "scope": 5615, + "src": "2021:502:15", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4241, + "nodeType": "Block", + "src": "2672:21:15", + "statements": [ + { + "expression": { + "hexValue": "313030303030653138", + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2681:9:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000_by_1", + "typeString": "int_const 100000000000000000000000" + }, + "value": "100000e18" + }, + "functionReturnParameters": 4238, + "id": 4240, + "nodeType": "Return", + "src": "2674:16:15" + } + ] + }, + "documentation": { + "id": 4234, + "nodeType": "StructuredDocumentation", + "src": "2529:82:15", + "text": "@notice The number of votes required in order for a voter to become a proposer" + }, + "functionSelector": "b58131b0", + "id": 4242, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "proposalThreshold", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4235, + "nodeType": "ParameterList", + "parameters": [], + "src": "2642:2:15" + }, + "returnParameters": { + "id": 4238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4237, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4242, + "src": "2666:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4236, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2666:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2665:6:15" + }, + "scope": 5615, + "src": "2616:77:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4250, + "nodeType": "Block", + "src": "2865:14:15", + "statements": [ + { + "expression": { + "hexValue": "3130", + "id": 4248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2874:2:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "functionReturnParameters": 4247, + "id": 4249, + "nodeType": "Return", + "src": "2867:9:15" + } + ] + }, + "documentation": { + "id": 4243, + "nodeType": "StructuredDocumentation", + "src": "2724:76:15", + "text": "@notice The maximum number of actions that can be included in a proposal" + }, + "functionSelector": "7bdbe4d0", + "id": 4251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "proposalMaxOperations", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4244, + "nodeType": "ParameterList", + "parameters": [], + "src": "2835:2:15" + }, + "returnParameters": { + "id": 4247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4246, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4251, + "src": "2859:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4245, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2859:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2858:6:15" + }, + "scope": 5615, + "src": "2805:74:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4259, + "nodeType": "Block", + "src": "3033:13:15", + "statements": [ + { + "expression": { + "hexValue": "31", + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3042:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "functionReturnParameters": 4256, + "id": 4258, + "nodeType": "Return", + "src": "3035:8:15" + } + ] + }, + "documentation": { + "id": 4252, + "nodeType": "StructuredDocumentation", + "src": "2899:79:15", + "text": "@notice The delay before voting on a proposal may take place, once proposed" + }, + "functionSelector": "3932abb1", + "id": 4260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "votingDelay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4253, + "nodeType": "ParameterList", + "parameters": [], + "src": "3003:2:15" + }, + "returnParameters": { + "id": 4256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4255, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "3027:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4254, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3027:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3026:6:15" + }, + "scope": 5615, + "src": "2983:63:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4268, + "nodeType": "Block", + "src": "3178:17:15", + "statements": [ + { + "expression": { + "hexValue": "3137323830", + "id": 4266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3187:5:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_17280_by_1", + "typeString": "int_const 17280" + }, + "value": "17280" + }, + "functionReturnParameters": 4265, + "id": 4267, + "nodeType": "Return", + "src": "3180:12:15" + } + ] + }, + "documentation": { + "id": 4261, + "nodeType": "StructuredDocumentation", + "src": "3063:59:15", + "text": "@notice The duration of voting on a proposal, in blocks" + }, + "functionSelector": "02a251a3", + "id": 4269, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "votingPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4262, + "nodeType": "ParameterList", + "parameters": [], + "src": "3148:2:15" + }, + "returnParameters": { + "id": 4265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4269, + "src": "3172:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4263, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3172:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3171:6:15" + }, + "scope": 5615, + "src": "3127:68:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4270, + "nodeType": "StructuredDocumentation", + "src": "3244:39:15", + "text": "@notice The address of the timelock" + }, + "functionSelector": "d33219b4", + "id": 4272, + "mutability": "mutable", + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "3288:33:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + }, + "typeName": { + "id": 4271, + "name": "TimelockInterface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5679, + "src": "3288:17:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4273, + "nodeType": "StructuredDocumentation", + "src": "3328:40:15", + "text": "@notice The address of the DAO token" + }, + "functionSelector": "94a08d58", + "id": 4275, + "mutability": "mutable", + "name": "dclm8", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "3373:27:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + }, + "typeName": { + "id": 4274, + "name": "Dclm8Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5713, + "src": "3373:14:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4276, + "nodeType": "StructuredDocumentation", + "src": "3407:48:15", + "text": "@notice The address of the Governor Guardian" + }, + "functionSelector": "452a9320", + "id": 4278, + "mutability": "mutable", + "name": "guardian", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "3460:23:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4279, + "nodeType": "StructuredDocumentation", + "src": "3490:41:15", + "text": "@notice The total number of proposals" + }, + "functionSelector": "da35c664", + "id": 4281, + "mutability": "mutable", + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "3536:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4280, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3536:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "canonicalName": "Governor.Proposal", + "id": 4318, + "members": [ + { + "constant": false, + "id": 4283, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "3649:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4282, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3649:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4285, + "mutability": "mutable", + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "3710:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3710:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4287, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "3848:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3848:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4290, + "mutability": "mutable", + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "3944:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3944:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4289, + "nodeType": "ArrayTypeName", + "src": "3944:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4293, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4072:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4072:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4292, + "nodeType": "ArrayTypeName", + "src": "4072:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4296, + "mutability": "mutable", + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4168:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 4294, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4168:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 4295, + "nodeType": "ArrayTypeName", + "src": "4168:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4299, + "mutability": "mutable", + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4272:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 4297, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4272:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 4298, + "nodeType": "ArrayTypeName", + "src": "4272:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4301, + "mutability": "mutable", + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4407:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4407:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4303, + "mutability": "mutable", + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4523:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4302, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4523:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4305, + "mutability": "mutable", + "name": "forVotes", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4616:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4304, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4616:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4307, + "mutability": "mutable", + "name": "againstVotes", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4714:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4714:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4309, + "mutability": "mutable", + "name": "canceled", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4813:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4308, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4813:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4311, + "mutability": "mutable", + "name": "executed", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4908:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4310, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4908:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4313, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "4978:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4312, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4978:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4317, + "mutability": "mutable", + "name": "receipts", + "nodeType": "VariableDeclaration", + "scope": 4318, + "src": "5075:37:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$4325_storage_$", + "typeString": "mapping(address => struct Governor.Receipt)" + }, + "typeName": { + "id": 4316, + "keyType": { + "id": 4314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5084:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5075:28:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$4325_storage_$", + "typeString": "mapping(address => struct Governor.Receipt)" + }, + "valueType": { + "id": 4315, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4325, + "src": "5095:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt" + } + } + }, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 5615, + "src": "3568:1551:15", + "visibility": "public" + }, + { + "canonicalName": "Governor.Receipt", + "id": 4325, + "members": [ + { + "constant": false, + "id": 4320, + "mutability": "mutable", + "name": "hasVoted", + "nodeType": "VariableDeclaration", + "scope": 4325, + "src": "5255:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4319, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5255:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4322, + "mutability": "mutable", + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 4325, + "src": "5345:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4321, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5345:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4324, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 4325, + "src": "5438:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 4323, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "5438:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "name": "Receipt", + "nodeType": "StructDefinition", + "scope": 5615, + "src": "5175:282:15", + "visibility": "public" + }, + { + "canonicalName": "Governor.ProposalState", + "id": 4334, + "members": [ + { + "id": 4326, + "name": "Pending", + "nodeType": "EnumValue", + "src": "5550:7:15" + }, + { + "id": 4327, + "name": "Active", + "nodeType": "EnumValue", + "src": "5567:6:15" + }, + { + "id": 4328, + "name": "Canceled", + "nodeType": "EnumValue", + "src": "5583:8:15" + }, + { + "id": 4329, + "name": "Defeated", + "nodeType": "EnumValue", + "src": "5601:8:15" + }, + { + "id": 4330, + "name": "Succeeded", + "nodeType": "EnumValue", + "src": "5619:9:15" + }, + { + "id": 4331, + "name": "Queued", + "nodeType": "EnumValue", + "src": "5638:6:15" + }, + { + "id": 4332, + "name": "Expired", + "nodeType": "EnumValue", + "src": "5654:7:15" + }, + { + "id": 4333, + "name": "Executed", + "nodeType": "EnumValue", + "src": "5671:8:15" + } + ], + "name": "ProposalState", + "nodeType": "EnumDefinition", + "src": "5521:164:15" + }, + { + "constant": false, + "documentation": { + "id": 4335, + "nodeType": "StructuredDocumentation", + "src": "5691:62:15", + "text": "@notice The official record of all proposals ever proposed" + }, + "functionSelector": "013cf08b", + "id": 4339, + "mutability": "mutable", + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "5758:43:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal)" + }, + "typeName": { + "id": 4338, + "keyType": { + "id": 4336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5767:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "5758:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal)" + }, + "valueType": { + "id": 4337, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "5775:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 4340, + "nodeType": "StructuredDocumentation", + "src": "5808:49:15", + "text": "@notice The latest proposal for each proposer" + }, + "functionSelector": "17977c61", + "id": 4344, + "mutability": "mutable", + "name": "latestProposalIds", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "5862:50:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 4343, + "keyType": { + "id": 4341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5871:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5862:25:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 4342, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5882:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 4345, + "nodeType": "StructuredDocumentation", + "src": "5919:58:15", + "text": "@notice The EIP-712 typehash for the contract's domain" + }, + "functionSelector": "20606b70", + "id": 4350, + "mutability": "constant", + "name": "DOMAIN_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "5982:122:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4346, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5982:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6034:69:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866", + "typeString": "literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 4347, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "6024:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6024:80:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 4351, + "nodeType": "StructuredDocumentation", + "src": "6111:75:15", + "text": "@notice The EIP-712 typehash for the ballot struct used by the contract" + }, + "functionSelector": "deaaa7cc", + "id": 4356, + "mutability": "constant", + "name": "BALLOT_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 5615, + "src": "6191:94:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6191:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20737570706f727429", + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6243:41:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee", + "typeString": "literal_string \"Ballot(uint256 proposalId,bool support)\"" + }, + "value": "Ballot(uint256 proposalId,bool support)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee", + "typeString": "literal_string \"Ballot(uint256 proposalId,bool support)\"" + } + ], + "id": 4353, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "6233:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6233:52:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 4357, + "nodeType": "StructuredDocumentation", + "src": "6292:59:15", + "text": "@notice An event emitted when a new proposal is created" + }, + "id": 4381, + "name": "ProposalCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4359, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6378:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4358, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6378:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4361, + "indexed": false, + "mutability": "mutable", + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6387:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6387:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4364, + "indexed": false, + "mutability": "mutable", + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6405:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6405:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4363, + "nodeType": "ArrayTypeName", + "src": "6405:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4367, + "indexed": false, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6424:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4365, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6424:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4366, + "nodeType": "ArrayTypeName", + "src": "6424:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4370, + "indexed": false, + "mutability": "mutable", + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6439:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 4368, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6439:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 4369, + "nodeType": "ArrayTypeName", + "src": "6439:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4373, + "indexed": false, + "mutability": "mutable", + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6460:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 4371, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6460:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 4372, + "nodeType": "ArrayTypeName", + "src": "6460:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4375, + "indexed": false, + "mutability": "mutable", + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6479:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4374, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6479:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4377, + "indexed": false, + "mutability": "mutable", + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6496:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6496:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4379, + "indexed": false, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 4381, + "src": "6511:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4378, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6511:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6377:153:15" + }, + "src": "6356:175:15" + }, + { + "anonymous": false, + "documentation": { + "id": 4382, + "nodeType": "StructuredDocumentation", + "src": "6537:68:15", + "text": "@notice An event emitted when a vote has been cast on a proposal" + }, + "id": 4392, + "name": "VoteCast", + "nodeType": "EventDefinition", + "parameters": { + "id": 4391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4384, + "indexed": false, + "mutability": "mutable", + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "6625:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6625:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4386, + "indexed": false, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "6640:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6640:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4388, + "indexed": false, + "mutability": "mutable", + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "6657:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4387, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6657:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4390, + "indexed": false, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 4392, + "src": "6671:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4389, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6671:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6624:58:15" + }, + "src": "6610:73:15" + }, + { + "anonymous": false, + "documentation": { + "id": 4393, + "nodeType": "StructuredDocumentation", + "src": "6689:62:15", + "text": "@notice An event emitted when a proposal has been canceled" + }, + "id": 4397, + "name": "ProposalCanceled", + "nodeType": "EventDefinition", + "parameters": { + "id": 4396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4395, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 4397, + "src": "6779:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4394, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6779:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6778:9:15" + }, + "src": "6756:32:15" + }, + { + "anonymous": false, + "documentation": { + "id": 4398, + "nodeType": "StructuredDocumentation", + "src": "6794:76:15", + "text": "@notice An event emitted when a proposal has been queued in the Timelock" + }, + "id": 4404, + "name": "ProposalQueued", + "nodeType": "EventDefinition", + "parameters": { + "id": 4403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4400, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 4404, + "src": "6896:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6896:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4402, + "indexed": false, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 4404, + "src": "6905:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6905:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6895:19:15" + }, + "src": "6875:40:15" + }, + { + "anonymous": false, + "documentation": { + "id": 4405, + "nodeType": "StructuredDocumentation", + "src": "6921:78:15", + "text": "@notice An event emitted when a proposal has been executed in the Timelock" + }, + "id": 4409, + "name": "ProposalExecuted", + "nodeType": "EventDefinition", + "parameters": { + "id": 4408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4407, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "7027:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4406, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7027:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7026:9:15" + }, + "src": "7004:32:15" + }, + { + "body": { + "id": 4434, + "nodeType": "Block", + "src": "7115:126:15", + "statements": [ + { + "expression": { + "id": 4422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4418, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "7125:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4420, + "name": "timelock_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4411, + "src": "7154:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4419, + "name": "TimelockInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5679, + "src": "7136:17:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_TimelockInterface_$5679_$", + "typeString": "type(contract TimelockInterface)" + } + }, + "id": 4421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7136:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "src": "7125:39:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4423, + "nodeType": "ExpressionStatement", + "src": "7125:39:15" + }, + { + "expression": { + "id": 4428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4424, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "7174:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4426, + "name": "dclm8_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4413, + "src": "7197:6:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4425, + "name": "Dclm8Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5713, + "src": "7182:14:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Dclm8Interface_$5713_$", + "typeString": "type(contract Dclm8Interface)" + } + }, + "id": 4427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7182:22:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "src": "7174:30:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4429, + "nodeType": "ExpressionStatement", + "src": "7174:30:15" + }, + { + "expression": { + "id": 4432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4430, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "7214:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4431, + "name": "guardian_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "7225:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7214:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4433, + "nodeType": "ExpressionStatement", + "src": "7214:20:15" + } + ] + }, + "id": 4435, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4411, + "mutability": "mutable", + "name": "timelock_", + "nodeType": "VariableDeclaration", + "scope": 4435, + "src": "7054:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7054:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4413, + "mutability": "mutable", + "name": "dclm8_", + "nodeType": "VariableDeclaration", + "scope": 4435, + "src": "7073:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7073:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4415, + "mutability": "mutable", + "name": "guardian_", + "nodeType": "VariableDeclaration", + "scope": 4435, + "src": "7089:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7089:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7053:54:15" + }, + "returnParameters": { + "id": 4417, + "nodeType": "ParameterList", + "parameters": [], + "src": "7115:0:15" + }, + "scope": 5615, + "src": "7042:199:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4679, + "nodeType": "Block", + "src": "7415:1868:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 4457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7453:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7453:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "expression": { + "id": 4460, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7472:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "7472:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 4462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7486:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 4459, + "name": "sub256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5518, + "src": "7465:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7465:23:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4455, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "7433:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 5688, + "src": "7433:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 4464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7433:56:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4465, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "7492:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7492:19:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7433:78:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64", + "id": 4468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7513:60:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5", + "typeString": "literal_string \"Governor::propose: proposer votes below proposal threshold\"" + }, + "value": "Governor::propose: proposer votes below proposal threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0072e36ada370753d55c2236f64e7281a17d39ec8da927e7a4cbe16dde96aec5", + "typeString": "literal_string \"Governor::propose: proposer votes below proposal threshold\"" + } + ], + "id": 4454, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7425:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7425:149:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4470, + "nodeType": "ExpressionStatement", + "src": "7425:149:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4472, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "7592:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7592:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4474, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4441, + "src": "7610:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 4475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7610:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7592:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4477, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "7627:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7627:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4479, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "7645:10:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7645:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7627:35:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7592:70:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4483, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "7666:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7666:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4485, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4447, + "src": "7684:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7684:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7666:34:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7592:108:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368", + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7702:65:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f", + "typeString": "literal_string \"Governor::propose: proposal function information arity mismatch\"" + }, + "value": "Governor::propose: proposal function information arity mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d10ec655549b1b1f766d457858c9d99d303aae952128d660e5f9aa72cfa7c0f", + "typeString": "literal_string \"Governor::propose: proposal function information arity mismatch\"" + } + ], + "id": 4471, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7584:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7584:184:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4491, + "nodeType": "ExpressionStatement", + "src": "7584:184:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4493, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "7786:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7786:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 4495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7804:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73", + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7807:41:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e", + "typeString": "literal_string \"Governor::propose: must provide actions\"" + }, + "value": "Governor::propose: must provide actions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3093f9b545fe0fd92c34059e440b11eb6efb2a6711eb38eecf4e7d65e1fd4e2e", + "typeString": "literal_string \"Governor::propose: must provide actions\"" + } + ], + "id": 4492, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7778:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7778:71:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4499, + "nodeType": "ExpressionStatement", + "src": "7778:71:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4501, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "7867:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7867:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4503, + "name": "proposalMaxOperations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4251, + "src": "7885:21:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7885:23:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7867:41:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a20746f6f206d616e7920616374696f6e73", + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7910:37:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea", + "typeString": "literal_string \"Governor::propose: too many actions\"" + }, + "value": "Governor::propose: too many actions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_193de9d00f60795e791e8768eb7b57db28f4acde78ad9b426f3139fcc3bb02ea", + "typeString": "literal_string \"Governor::propose: too many actions\"" + } + ], + "id": 4500, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7859:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7859:89:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4508, + "nodeType": "ExpressionStatement", + "src": "7859:89:15" + }, + { + "assignments": [ + 4510 + ], + "declarations": [ + { + "constant": false, + "id": 4510, + "mutability": "mutable", + "name": "latestProposalId", + "nodeType": "VariableDeclaration", + "scope": 4679, + "src": "7959:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7959:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4515, + "initialValue": { + "baseExpression": { + "id": 4511, + "name": "latestProposalIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4344, + "src": "7983:17:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4514, + "indexExpression": { + "expression": { + "id": 4512, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8001:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8001:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7983:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7959:53:15" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4516, + "name": "latestProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4510, + "src": "8026:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 4517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8046:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8026:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4542, + "nodeType": "IfStatement", + "src": "8022:440:15", + "trueBody": { + "id": 4541, + "nodeType": "Block", + "src": "8049:413:15", + "statements": [ + { + "assignments": [ + 4520 + ], + "declarations": [ + { + "constant": false, + "id": 4520, + "mutability": "mutable", + "name": "proposersLatestProposalState", + "nodeType": "VariableDeclaration", + "scope": 4541, + "src": "8061:42:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "typeName": { + "id": 4519, + "name": "ProposalState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4334, + "src": "8061:13:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "visibility": "internal" + } + ], + "id": 4524, + "initialValue": { + "arguments": [ + { + "id": 4522, + "name": "latestProposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4510, + "src": "8112:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4521, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "8106:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$4334_$", + "typeString": "function (uint256) view returns (enum Governor.ProposalState)" + } + }, + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8106:23:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8061:68:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 4529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4526, + "name": "proposersLatestProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "8149:28:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 4527, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "8181:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 4528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "src": "8181:20:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "8149:52:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c", + "id": 4530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8203:85:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da", + "typeString": "literal_string \"Governor::propose: one live proposal per proposer, found an already active proposal\"" + }, + "value": "Governor::propose: one live proposal per proposer, found an already active proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_67c059639fd578706a54d525a399c920cc7716e098c8577f1405ef90d31ce2da", + "typeString": "literal_string \"Governor::propose: one live proposal per proposer, found an already active proposal\"" + } + ], + "id": 4525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8141:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8141:148:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4532, + "nodeType": "ExpressionStatement", + "src": "8141:148:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 4537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4534, + "name": "proposersLatestProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "8309:28:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 4535, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "8341:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 4536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Pending", + "nodeType": "MemberAccess", + "src": "8341:21:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "8309:53:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c", + "id": 4538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8364:86:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a", + "typeString": "literal_string \"Governor::propose: one live proposal per proposer, found an already pending proposal\"" + }, + "value": "Governor::propose: one live proposal per proposer, found an already pending proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_37a339f5253775e508175a7e67f18f93ac5b64717c10eb9177d8fbf2fcea925a", + "typeString": "literal_string \"Governor::propose: one live proposal per proposer, found an already pending proposal\"" + } + ], + "id": 4533, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8301:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8301:150:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4540, + "nodeType": "ExpressionStatement", + "src": "8301:150:15" + } + ] + } + }, + { + "assignments": [ + 4544 + ], + "declarations": [ + { + "constant": false, + "id": 4544, + "mutability": "mutable", + "name": "startBlock", + "nodeType": "VariableDeclaration", + "scope": 4679, + "src": "8472:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4543, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8472:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4551, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 4546, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8497:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "8497:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4548, + "name": "votingDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4260, + "src": "8511:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8511:13:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4545, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "8490:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8490:35:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8472:53:15" + }, + { + "assignments": [ + 4553 + ], + "declarations": [ + { + "constant": false, + "id": 4553, + "mutability": "mutable", + "name": "endBlock", + "nodeType": "VariableDeclaration", + "scope": 4679, + "src": "8535:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8535:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4559, + "initialValue": { + "arguments": [ + { + "id": 4555, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4544, + "src": "8558:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4556, + "name": "votingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4269, + "src": "8570:12:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8570:14:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4554, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "8551:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8551:34:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8535:50:15" + }, + { + "expression": { + "id": 4561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8596:15:15", + "subExpression": { + "id": 4560, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4281, + "src": "8596:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4562, + "nodeType": "ExpressionStatement", + "src": "8596:15:15" + }, + { + "assignments": [ + 4564 + ], + "declarations": [ + { + "constant": false, + "id": 4564, + "mutability": "mutable", + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 4679, + "src": "8622:18:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 4563, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "8622:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 4568, + "initialValue": { + "baseExpression": { + "id": 4565, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "8643:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 4567, + "indexExpression": { + "id": 4566, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4281, + "src": "8653:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8643:24:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8622:45:15" + }, + { + "expression": { + "id": 4573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4569, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8677:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4571, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 4283, + "src": "8677:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4572, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4281, + "src": "8684:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8677:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4574, + "nodeType": "ExpressionStatement", + "src": "8677:20:15" + }, + { + "expression": { + "id": 4580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4575, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8707:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 4285, + "src": "8707:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 4578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8720:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8720:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8707:23:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4581, + "nodeType": "ExpressionStatement", + "src": "8707:23:15" + }, + { + "expression": { + "id": 4586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4582, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8740:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "8740:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8748:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8740:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4587, + "nodeType": "ExpressionStatement", + "src": "8740:9:15" + }, + { + "expression": { + "id": 4592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4588, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8759:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4590, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "8759:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4591, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "8771:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "8759:19:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4593, + "nodeType": "ExpressionStatement", + "src": "8759:19:15" + }, + { + "expression": { + "id": 4598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4594, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8788:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "8788:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4597, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4441, + "src": "8799:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "8788:17:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4599, + "nodeType": "ExpressionStatement", + "src": "8788:17:15" + }, + { + "expression": { + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4600, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8815:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4602, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 4296, + "src": "8815:12:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4603, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "8830:10:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "src": "8815:25:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 4605, + "nodeType": "ExpressionStatement", + "src": "8815:25:15" + }, + { + "expression": { + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4606, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8850:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 4299, + "src": "8850:11:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4609, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4447, + "src": "8864:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "8850:23:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 4611, + "nodeType": "ExpressionStatement", + "src": "8850:23:15" + }, + { + "expression": { + "id": 4616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4612, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8883:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "startBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 4301, + "src": "8883:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4615, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4544, + "src": "8898:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8883:25:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4617, + "nodeType": "ExpressionStatement", + "src": "8883:25:15" + }, + { + "expression": { + "id": 4622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4618, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8918:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4620, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "endBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 4303, + "src": "8918:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4621, + "name": "endBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4553, + "src": "8931:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8918:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4623, + "nodeType": "ExpressionStatement", + "src": "8918:21:15" + }, + { + "expression": { + "id": 4628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4624, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8949:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4305, + "src": "8949:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 4627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8962:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8949:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4629, + "nodeType": "ExpressionStatement", + "src": "8949:14:15" + }, + { + "expression": { + "id": 4634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4630, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "8973:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4307, + "src": "8973:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 4633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8990:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8973:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4635, + "nodeType": "ExpressionStatement", + "src": "8973:18:15" + }, + { + "expression": { + "id": 4640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4636, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9001:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4638, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": 4309, + "src": "9001:10:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 4639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9014:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "9001:18:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4641, + "nodeType": "ExpressionStatement", + "src": "9001:18:15" + }, + { + "expression": { + "id": 4646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4642, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9029:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4644, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4311, + "src": "9029:10:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 4645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9042:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "9029:18:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4647, + "nodeType": "ExpressionStatement", + "src": "9029:18:15" + }, + { + "expression": { + "id": 4652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4648, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9057:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 4313, + "src": "9057:13:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4651, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "9073:11:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "9057:27:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4653, + "nodeType": "ExpressionStatement", + "src": "9057:27:15" + }, + { + "expression": { + "id": 4660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4654, + "name": "latestProposalIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4344, + "src": "9095:17:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4657, + "indexExpression": { + "expression": { + "id": 4655, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9113:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4656, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 4285, + "src": "9113:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9095:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 4658, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9127:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4659, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 4283, + "src": "9127:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9095:36:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4661, + "nodeType": "ExpressionStatement", + "src": "9095:36:15" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 4663, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9163:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4664, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 4283, + "src": "9163:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4665, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9169:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9169:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 4667, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4438, + "src": "9181:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "id": 4668, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4441, + "src": "9190:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 4669, + "name": "signatures", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4444, + "src": "9198:10:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 4670, + "name": "calldatas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4447, + "src": "9210:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + { + "id": 4671, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4544, + "src": "9221:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4672, + "name": "endBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4553, + "src": "9233:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4673, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "9243:11:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4662, + "name": "ProposalCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4381, + "src": "9147:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)" + } + }, + "id": 4674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9147:108:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4675, + "nodeType": "EmitStatement", + "src": "9142:113:15" + }, + { + "expression": { + "expression": { + "id": 4676, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4564, + "src": "9272:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4677, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 4283, + "src": "9272:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4453, + "id": 4678, + "nodeType": "Return", + "src": "9265:11:15" + } + ] + }, + "functionSelector": "da95691a", + "id": 4680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "propose", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4438, + "mutability": "mutable", + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7264:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7264:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4437, + "nodeType": "ArrayTypeName", + "src": "7264:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4441, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7290:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7290:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4440, + "nodeType": "ArrayTypeName", + "src": "7290:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4444, + "mutability": "mutable", + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7312:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 4442, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7312:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 4443, + "nodeType": "ArrayTypeName", + "src": "7312:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4447, + "mutability": "mutable", + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7340:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 4445, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7340:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 4446, + "nodeType": "ArrayTypeName", + "src": "7340:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4449, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7366:25:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4448, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7366:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7263:129:15" + }, + "returnParameters": { + "id": 4453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4452, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "7409:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7409:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7408:6:15" + }, + "scope": 5615, + "src": "7247:2036:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4756, + "nodeType": "Block", + "src": "9328:524:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 4691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4687, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4682, + "src": "9352:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4686, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "9346:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$4334_$", + "typeString": "function (uint256) view returns (enum Governor.ProposalState)" + } + }, + "id": 4688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9346:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4689, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "9367:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Succeeded", + "nodeType": "MemberAccess", + "src": "9367:23:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "9346:44:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564", + "id": 4692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9392:65:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd", + "typeString": "literal_string \"Governor::queue: proposal can only be queued if it is succeeded\"" + }, + "value": "Governor::queue: proposal can only be queued if it is succeeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f893ebbb50fdb46b9b80bb92d8bf649ad5b0dc16a665c98dcc2701083a6f65fd", + "typeString": "literal_string \"Governor::queue: proposal can only be queued if it is succeeded\"" + } + ], + "id": 4685, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9338:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9338:120:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4694, + "nodeType": "ExpressionStatement", + "src": "9338:120:15" + }, + { + "assignments": [ + 4696 + ], + "declarations": [ + { + "constant": false, + "id": 4696, + "mutability": "mutable", + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 4756, + "src": "9468:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 4695, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "9468:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 4700, + "initialValue": { + "baseExpression": { + "id": 4697, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "9496:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 4699, + "indexExpression": { + "id": 4698, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4682, + "src": "9506:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9496:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9468:49:15" + }, + { + "assignments": [ + 4702 + ], + "declarations": [ + { + "constant": false, + "id": 4702, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 4756, + "src": "9527:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4701, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9527:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4710, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 4704, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "9545:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "9545:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 4706, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "9562:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delay", + "nodeType": "MemberAccess", + "referencedDeclaration": 5620, + "src": "9562:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 4708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9562:16:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4703, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "9538:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9538:41:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9527:52:15" + }, + { + "body": { + "id": 4743, + "nodeType": "Block", + "src": "9640:132:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 4724, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9669:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "9669:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4727, + "indexExpression": { + "id": 4726, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9686:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9669:19:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "expression": { + "id": 4728, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9690:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4729, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "9690:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4731, + "indexExpression": { + "id": 4730, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9706:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9690:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 4732, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9710:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4733, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 4296, + "src": "9710:19:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 4735, + "indexExpression": { + "id": 4734, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9730:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9710:22:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "expression": { + "id": 4736, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9734:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4737, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 4299, + "src": "9734:18:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 4739, + "indexExpression": { + "id": 4738, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9753:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9734:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "id": 4740, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "9757:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4723, + "name": "_queueOrRevert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4799, + "src": "9654:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9654:107:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4742, + "nodeType": "ExpressionStatement", + "src": "9654:107:15" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4715, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9606:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 4716, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9610:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "9610:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9610:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9606:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4744, + "initializationExpression": { + "assignments": [ + 4712 + ], + "declarations": [ + { + "constant": false, + "id": 4712, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4744, + "src": "9594:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9594:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4714, + "initialValue": { + "hexValue": "30", + "id": 4713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9603:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9594:10:15" + }, + "loopExpression": { + "expression": { + "id": 4721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9635:3:15", + "subExpression": { + "id": 4720, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4712, + "src": "9635:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4722, + "nodeType": "ExpressionStatement", + "src": "9635:3:15" + }, + "nodeType": "ForStatement", + "src": "9589:183:15" + }, + { + "expression": { + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4745, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "9781:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4747, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "9781:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4748, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "9796:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9781:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4750, + "nodeType": "ExpressionStatement", + "src": "9781:18:15" + }, + { + "eventCall": { + "arguments": [ + { + "id": 4752, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4682, + "src": "9829:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4753, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "9841:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4751, + "name": "ProposalQueued", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4404, + "src": "9814:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 4754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9814:31:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4755, + "nodeType": "EmitStatement", + "src": "9809:36:15" + } + ] + }, + "functionSelector": "ddf0b009", + "id": 4757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4682, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 4757, + "src": "9304:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4681, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9304:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9303:17:15" + }, + "returnParameters": { + "id": 4684, + "nodeType": "ParameterList", + "parameters": [], + "src": "9328:0:15" + }, + "scope": 5615, + "src": "9289:563:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4798, + "nodeType": "Block", + "src": "9973:253:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9991:88:15", + "subExpression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 4776, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4759, + "src": "10041:6:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4777, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4761, + "src": "10049:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4778, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4763, + "src": "10056:9:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4765, + "src": "10067:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 4780, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4767, + "src": "10073:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4774, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "10030:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 4775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "10030:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 4781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10030:47:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4773, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "10020:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10020:58:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 4771, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "9992:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queuedTransactions", + "nodeType": "MemberAccess", + "referencedDeclaration": 5635, + "src": "9992:27:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 4783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9992:87:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461", + "id": 4785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10081:65:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08", + "typeString": "literal_string \"Governor::_queueOrRevert: proposal action already queued at eta\"" + }, + "value": "Governor::_queueOrRevert: proposal action already queued at eta" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_96bfb4d3cd67e4e2791cf52915c871fa3a3e4602c18783bf584f6b6218b46f08", + "typeString": "literal_string \"Governor::_queueOrRevert: proposal action already queued at eta\"" + } + ], + "id": 4770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9983:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9983:164:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4787, + "nodeType": "ExpressionStatement", + "src": "9983:164:15" + }, + { + "expression": { + "arguments": [ + { + "id": 4791, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4759, + "src": "10183:6:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4792, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4761, + "src": "10191:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4793, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4763, + "src": "10198:9:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4794, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4765, + "src": "10209:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 4795, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4767, + "src": "10215:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4788, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "10157:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queueTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 5650, + "src": "10157:25:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)" + } + }, + "id": 4796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10157:62:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4797, + "nodeType": "ExpressionStatement", + "src": "10157:62:15" + } + ] + }, + "id": 4799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_queueOrRevert", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "9882:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9882:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4761, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "9898:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9898:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4763, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "9910:23:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4762, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9910:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4765, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "9935:17:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4764, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9935:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4767, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "9954:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4766, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9954:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9881:82:15" + }, + "returnParameters": { + "id": 4769, + "nodeType": "ParameterList", + "parameters": [], + "src": "9973:0:15" + }, + "scope": 5615, + "src": "9858:368:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4872, + "nodeType": "Block", + "src": "10281:512:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 4810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4806, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4801, + "src": "10305:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4805, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "10299:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$4334_$", + "typeString": "function (uint256) view returns (enum Governor.ProposalState)" + } + }, + "id": 4807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10299:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4808, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "10320:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 4809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Queued", + "nodeType": "MemberAccess", + "src": "10320:20:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "10299:41:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564", + "id": 4811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10342:66:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d", + "typeString": "literal_string \"Governor::execute: proposal can only be executed if it is queued\"" + }, + "value": "Governor::execute: proposal can only be executed if it is queued" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_80ca5c395a00ae15baab003a02bebb17d94da67490eb78748d74515bcf186b1d", + "typeString": "literal_string \"Governor::execute: proposal can only be executed if it is queued\"" + } + ], + "id": 4804, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10291:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10291:118:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4813, + "nodeType": "ExpressionStatement", + "src": "10291:118:15" + }, + { + "assignments": [ + 4815 + ], + "declarations": [ + { + "constant": false, + "id": 4815, + "mutability": "mutable", + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 4872, + "src": "10419:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 4814, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "10419:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 4819, + "initialValue": { + "baseExpression": { + "id": 4816, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "10447:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 4818, + "indexExpression": { + "id": 4817, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4801, + "src": "10457:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10447:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10419:49:15" + }, + { + "expression": { + "id": 4824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4820, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10478:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4822, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4311, + "src": "10478:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 4823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10498:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10478:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4825, + "nodeType": "ExpressionStatement", + "src": "10478:24:15" + }, + { + "body": { + "id": 4866, + "nodeType": "Block", + "src": "10563:181:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 4846, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10632:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "10632:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4849, + "indexExpression": { + "id": 4848, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10649:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10632:19:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "expression": { + "id": 4850, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10653:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4851, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "10653:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4853, + "indexExpression": { + "id": 4852, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10669:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10653:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 4854, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10673:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4855, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 4296, + "src": "10673:19:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 4857, + "indexExpression": { + "id": 4856, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10693:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10673:22:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "expression": { + "id": 4858, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10697:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 4299, + "src": "10697:18:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 4861, + "indexExpression": { + "id": 4860, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10716:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10697:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "expression": { + "id": 4862, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10720:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "10720:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4838, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "10577:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "executeTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 5678, + "src": "10577:27:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + } + }, + "id": 4845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "baseExpression": { + "expression": { + "id": 4841, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10612:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "10612:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4844, + "indexExpression": { + "id": 4843, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10628:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10612:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "10577:54:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + } + }, + "id": 4864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10577:156:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4865, + "nodeType": "ExpressionStatement", + "src": "10577:156:15" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4830, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10529:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 4831, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "10533:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "10533:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10533:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10529:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4867, + "initializationExpression": { + "assignments": [ + 4827 + ], + "declarations": [ + { + "constant": false, + "id": 4827, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4867, + "src": "10517:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4826, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10517:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4829, + "initialValue": { + "hexValue": "30", + "id": 4828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10526:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10517:10:15" + }, + "loopExpression": { + "expression": { + "id": 4836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10558:3:15", + "subExpression": { + "id": 4835, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4827, + "src": "10558:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4837, + "nodeType": "ExpressionStatement", + "src": "10558:3:15" + }, + "nodeType": "ForStatement", + "src": "10512:232:15" + }, + { + "eventCall": { + "arguments": [ + { + "id": 4869, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4801, + "src": "10775:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4868, + "name": "ProposalExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4409, + "src": "10758:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10758:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4871, + "nodeType": "EmitStatement", + "src": "10753:33:15" + } + ] + }, + "functionSelector": "fe0d94c1", + "id": 4873, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "execute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4801, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 4873, + "src": "10249:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4800, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10249:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10248:17:15" + }, + "returnParameters": { + "id": 4803, + "nodeType": "ParameterList", + "parameters": [], + "src": "10281:0:15" + }, + "scope": 5615, + "src": "10232:561:15", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4967, + "nodeType": "Block", + "src": "10839:701:15", + "statements": [ + { + "assignments": [ + 4879 + ], + "declarations": [ + { + "constant": false, + "id": 4879, + "mutability": "mutable", + "name": "currentState", + "nodeType": "VariableDeclaration", + "scope": 4967, + "src": "10849:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "typeName": { + "id": 4878, + "name": "ProposalState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4334, + "src": "10849:13:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "visibility": "internal" + } + ], + "id": 4883, + "initialValue": { + "arguments": [ + { + "id": 4881, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4875, + "src": "10884:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4880, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "10878:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$4334_$", + "typeString": "function (uint256) view returns (enum Governor.ProposalState)" + } + }, + "id": 4882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10878:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10849:46:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 4888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4885, + "name": "currentState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4879, + "src": "10913:12:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 4886, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "10929:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Executed", + "nodeType": "MemberAccess", + "src": "10929:22:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "10913:38:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c", + "id": 4889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10953:51:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa", + "typeString": "literal_string \"Governor::cancel: cannot cancel executed proposal\"" + }, + "value": "Governor::cancel: cannot cancel executed proposal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a435c4fd3d9c1971d81b331b4a4c5e87295b57abb48007dd06a3236e95f3efa", + "typeString": "literal_string \"Governor::cancel: cannot cancel executed proposal\"" + } + ], + "id": 4884, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10905:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10905:100:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4891, + "nodeType": "ExpressionStatement", + "src": "10905:100:15" + }, + { + "assignments": [ + 4893 + ], + "declarations": [ + { + "constant": false, + "id": 4893, + "mutability": "mutable", + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 4967, + "src": "11016:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 4892, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "11016:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 4897, + "initialValue": { + "baseExpression": { + "id": 4894, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "11044:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 4896, + "indexExpression": { + "id": 4895, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4875, + "src": "11054:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11044:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11016:49:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4899, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11083:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11083:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4901, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "11097:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11083:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 4905, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11129:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4906, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 4285, + "src": "11129:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 4908, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11155:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 4909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "11155:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 4910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11169:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 4907, + "name": "sub256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5518, + "src": "11148:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11148:23:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4903, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "11109:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 4904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 5688, + "src": "11109:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11109:63:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4913, + "name": "proposalThreshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "11175:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11175:19:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11109:85:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11083:111:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64", + "id": 4917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11196:44:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef", + "typeString": "literal_string \"Governor::cancel: proposer above threshold\"" + }, + "value": "Governor::cancel: proposer above threshold" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db225cdbdb9fe5623b978240184d35549f945a3aac592446efbca91ebb6b26ef", + "typeString": "literal_string \"Governor::cancel: proposer above threshold\"" + } + ], + "id": 4898, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11075:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11075:166:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4919, + "nodeType": "ExpressionStatement", + "src": "11075:166:15" + }, + { + "expression": { + "id": 4924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4920, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11252:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4922, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": 4309, + "src": "11252:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11272:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11252:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4925, + "nodeType": "ExpressionStatement", + "src": "11252:24:15" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "11337:153:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 4941, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11378:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "11378:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4944, + "indexExpression": { + "id": 4943, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11395:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11378:19:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "expression": { + "id": 4945, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11399:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4946, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "11399:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4948, + "indexExpression": { + "id": 4947, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11415:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11399:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 4949, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11419:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4950, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 4296, + "src": "11419:19:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + "id": 4952, + "indexExpression": { + "id": 4951, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11439:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11419:22:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "baseExpression": { + "expression": { + "id": 4953, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11443:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 4299, + "src": "11443:18:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + }, + "id": 4956, + "indexExpression": { + "id": 4955, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11462:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11443:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "expression": { + "id": 4957, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11466:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4958, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "11466:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4938, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "11351:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 4940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "cancelTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 5663, + "src": "11351:26:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) external" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11351:128:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "11351:128:15" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4930, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11303:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 4931, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4893, + "src": "11307:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4932, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "11307:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11307:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11303:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4962, + "initializationExpression": { + "assignments": [ + 4927 + ], + "declarations": [ + { + "constant": false, + "id": 4927, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "11291:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4926, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11291:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4929, + "initialValue": { + "hexValue": "30", + "id": 4928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11300:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11291:10:15" + }, + "loopExpression": { + "expression": { + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11332:3:15", + "subExpression": { + "id": 4935, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4927, + "src": "11332:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4937, + "nodeType": "ExpressionStatement", + "src": "11332:3:15" + }, + "nodeType": "ForStatement", + "src": "11286:204:15" + }, + { + "eventCall": { + "arguments": [ + { + "id": 4964, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4875, + "src": "11522:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4963, + "name": "ProposalCanceled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4397, + "src": "11505:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11505:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4966, + "nodeType": "EmitStatement", + "src": "11500:33:15" + } + ] + }, + "functionSelector": "40e58ee5", + "id": 4968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancel", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 4968, + "src": "10815:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4874, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10815:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10814:17:15" + }, + "returnParameters": { + "id": 4877, + "nodeType": "ParameterList", + "parameters": [], + "src": "10839:0:15" + }, + "scope": 5615, + "src": "10799:741:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5001, + "nodeType": "Block", + "src": "11706:124:15", + "statements": [ + { + "assignments": [ + 4986 + ], + "declarations": [ + { + "constant": false, + "id": 4986, + "mutability": "mutable", + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 5001, + "src": "11716:18:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 4985, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "11716:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 4990, + "initialValue": { + "baseExpression": { + "id": 4987, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "11737:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 4989, + "indexExpression": { + "id": 4988, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4970, + "src": "11747:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11737:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11716:42:15" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 4991, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4986, + "src": "11776:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4992, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "targets", + "nodeType": "MemberAccess", + "referencedDeclaration": 4290, + "src": "11776:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + { + "expression": { + "id": 4993, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4986, + "src": "11787:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 4293, + "src": "11787:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "expression": { + "id": 4995, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4986, + "src": "11797:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4996, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatures", + "nodeType": "MemberAccess", + "referencedDeclaration": 4296, + "src": "11797:12:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", + "typeString": "string storage ref[] storage ref" + } + }, + { + "expression": { + "id": 4997, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4986, + "src": "11811:1:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 4998, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "calldatas", + "nodeType": "MemberAccess", + "referencedDeclaration": 4299, + "src": "11811:11:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes storage ref[] storage ref" + } + } + ], + "id": 4999, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11775:48:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_string_storage_$dyn_storage_$_t_array$_t_bytes_storage_$dyn_storage_$", + "typeString": "tuple(address[] storage ref,uint256[] storage ref,string storage ref[] storage ref,bytes storage ref[] storage ref)" + } + }, + "functionReturnParameters": 4984, + "id": 5000, + "nodeType": "Return", + "src": "11768:55:15" + } + ] + }, + "functionSelector": "328dd982", + "id": 5002, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getActions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4970, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5002, + "src": "11566:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4969, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11566:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11565:17:15" + }, + "returnParameters": { + "id": 4984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4974, + "mutability": "mutable", + "name": "targets", + "nodeType": "VariableDeclaration", + "scope": 5002, + "src": "11604:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11604:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4973, + "nodeType": "ArrayTypeName", + "src": "11604:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4977, + "mutability": "mutable", + "name": "values", + "nodeType": "VariableDeclaration", + "scope": 5002, + "src": "11630:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4975, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11630:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4976, + "nodeType": "ArrayTypeName", + "src": "11630:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4980, + "mutability": "mutable", + "name": "signatures", + "nodeType": "VariableDeclaration", + "scope": 5002, + "src": "11652:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 4978, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11652:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 4979, + "nodeType": "ArrayTypeName", + "src": "11652:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4983, + "mutability": "mutable", + "name": "calldatas", + "nodeType": "VariableDeclaration", + "scope": 5002, + "src": "11680:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 4981, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11680:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 4982, + "nodeType": "ArrayTypeName", + "src": "11680:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "11603:102:15" + }, + "scope": 5615, + "src": "11546:284:15", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5018, + "nodeType": "Block", + "src": "11925:61:15", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 5011, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "11942:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 5013, + "indexExpression": { + "id": 5012, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5004, + "src": "11952:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11942:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "id": 5014, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receipts", + "nodeType": "MemberAccess", + "referencedDeclaration": 4317, + "src": "11942:30:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$4325_storage_$", + "typeString": "mapping(address => struct Governor.Receipt storage ref)" + } + }, + "id": 5016, + "indexExpression": { + "id": 5015, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "11973:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11942:37:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage", + "typeString": "struct Governor.Receipt storage ref" + } + }, + "functionReturnParameters": 5010, + "id": 5017, + "nodeType": "Return", + "src": "11935:44:15" + } + ] + }, + "functionSelector": "e23a9a52", + "id": 5019, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReceipt", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5004, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5019, + "src": "11856:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5003, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11856:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5006, + "mutability": "mutable", + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 5019, + "src": "11873:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11873:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11855:32:15" + }, + "returnParameters": { + "id": 5010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5009, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5019, + "src": "11909:14:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_memory_ptr", + "typeString": "struct Governor.Receipt" + }, + "typeName": { + "id": 5008, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4325, + "src": "11909:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt" + } + }, + "visibility": "internal" + } + ], + "src": "11908:16:15" + }, + "scope": 5615, + "src": "11836:150:15", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5031, + "nodeType": "Block", + "src": "12069:57:15", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 5026, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "12086:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 5028, + "indexExpression": { + "id": 5027, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "12096:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12086:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "id": 5029, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 4313, + "src": "12086:33:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 5025, + "id": 5030, + "nodeType": "Return", + "src": "12079:40:15" + } + ] + }, + "functionSelector": "4925ec55", + "id": 5032, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDescription", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5021, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5032, + "src": "12016:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5020, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12016:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12015:17:15" + }, + "returnParameters": { + "id": 5025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5024, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5032, + "src": "12054:13:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5023, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12054:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "12053:15:15" + }, + "scope": 5615, + "src": "11992:134:15", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "12200:952:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5040, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4281, + "src": "12218:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5041, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5034, + "src": "12235:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12218:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5043, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5034, + "src": "12249:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12262:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12249:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12218:45:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f73616c206964", + "id": 5047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12265:38:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c", + "typeString": "literal_string \"Governor::state: invalid proposal id\"" + }, + "value": "Governor::state: invalid proposal id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5eb7cb64a1b1700c37a1c544d147fdb92d0277ab33e0e8db4a05aab913e9fc6c", + "typeString": "literal_string \"Governor::state: invalid proposal id\"" + } + ], + "id": 5039, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12210:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12210:94:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5049, + "nodeType": "ExpressionStatement", + "src": "12210:94:15" + }, + { + "assignments": [ + 5051 + ], + "declarations": [ + { + "constant": false, + "id": 5051, + "mutability": "mutable", + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "12314:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 5050, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "12314:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 5055, + "initialValue": { + "baseExpression": { + "id": 5052, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "12342:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 5054, + "indexExpression": { + "id": 5053, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5034, + "src": "12352:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12342:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12314:49:15" + }, + { + "condition": { + "expression": { + "id": 5056, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12377:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5057, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "canceled", + "nodeType": "MemberAccess", + "referencedDeclaration": 4309, + "src": "12377:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5062, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "12460:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "12460:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 5064, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12476:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5065, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 4301, + "src": "12476:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12460:35:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5071, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "12560:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "src": "12560:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 5073, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12576:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5074, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 4303, + "src": "12576:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12560:33:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5080, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12657:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5081, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4305, + "src": "12657:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 5082, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12678:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4307, + "src": "12678:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12657:42:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5085, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12703:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4305, + "src": "12703:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5087, + "name": "quorumVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4233, + "src": "12723:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 5088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12723:13:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12703:33:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12657:79:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5095, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12802:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "12802:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12802:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "expression": { + "id": 5103, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12886:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5104, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4311, + "src": "12886:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5109, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "12969:5:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "12969:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 5112, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5051, + "src": "12995:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5113, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "eta", + "nodeType": "MemberAccess", + "referencedDeclaration": 4287, + "src": "12995:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 5114, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "13009:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "GRACE_PERIOD", + "nodeType": "MemberAccess", + "referencedDeclaration": 5625, + "src": "13009:21:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 5116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13009:23:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5111, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "12988:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12988:45:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12969:64:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5126, + "nodeType": "Block", + "src": "13094:52:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5123, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "13115:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Queued", + "nodeType": "MemberAccess", + "src": "13115:20:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5125, + "nodeType": "Return", + "src": "13108:27:15" + } + ] + }, + "id": 5127, + "nodeType": "IfStatement", + "src": "12965:181:15", + "trueBody": { + "id": 5122, + "nodeType": "Block", + "src": "13035:53:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5119, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "13056:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Expired", + "nodeType": "MemberAccess", + "src": "13056:21:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5121, + "nodeType": "Return", + "src": "13049:28:15" + } + ] + } + }, + "id": 5128, + "nodeType": "IfStatement", + "src": "12882:264:15", + "trueBody": { + "id": 5108, + "nodeType": "Block", + "src": "12905:54:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5105, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12926:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Executed", + "nodeType": "MemberAccess", + "src": "12926:22:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5107, + "nodeType": "Return", + "src": "12919:29:15" + } + ] + } + }, + "id": 5129, + "nodeType": "IfStatement", + "src": "12798:348:15", + "trueBody": { + "id": 5102, + "nodeType": "Block", + "src": "12821:55:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5099, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12842:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Succeeded", + "nodeType": "MemberAccess", + "src": "12842:23:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5101, + "nodeType": "Return", + "src": "12835:30:15" + } + ] + } + }, + "id": 5130, + "nodeType": "IfStatement", + "src": "12653:493:15", + "trueBody": { + "id": 5094, + "nodeType": "Block", + "src": "12738:54:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5091, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12759:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Defeated", + "nodeType": "MemberAccess", + "src": "12759:22:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5093, + "nodeType": "Return", + "src": "12752:29:15" + } + ] + } + }, + "id": 5131, + "nodeType": "IfStatement", + "src": "12556:590:15", + "trueBody": { + "id": 5079, + "nodeType": "Block", + "src": "12595:52:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5076, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12616:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "src": "12616:20:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5078, + "nodeType": "Return", + "src": "12609:27:15" + } + ] + } + }, + "id": 5132, + "nodeType": "IfStatement", + "src": "12456:690:15", + "trueBody": { + "id": 5070, + "nodeType": "Block", + "src": "12497:53:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5067, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12518:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Pending", + "nodeType": "MemberAccess", + "src": "12518:21:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5069, + "nodeType": "Return", + "src": "12511:28:15" + } + ] + } + }, + "id": 5133, + "nodeType": "IfStatement", + "src": "12373:773:15", + "trueBody": { + "id": 5061, + "nodeType": "Block", + "src": "12396:54:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5058, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "12417:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Canceled", + "nodeType": "MemberAccess", + "src": "12417:22:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "functionReturnParameters": 5038, + "id": 5060, + "nodeType": "Return", + "src": "12410:29:15" + } + ] + } + } + ] + }, + "functionSelector": "3e4f49e6", + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "state", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5034, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "12147:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5033, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12147:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12146:17:15" + }, + "returnParameters": { + "id": 5038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5037, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "12185:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "typeName": { + "id": 5036, + "name": "ProposalState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4334, + "src": "12185:13:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "visibility": "internal" + } + ], + "src": "12184:15:15" + }, + "scope": 5615, + "src": "12132:1020:15", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5152, + "nodeType": "Block", + "src": "13228:73:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 5145, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13255:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "13255:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 5147, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "13267:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5148, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "13279:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5149, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "13288:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5144, + "name": "_castVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5372, + "src": "13245:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint96_$returns$__$", + "typeString": "function (address,uint256,bool,uint96)" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13245:49:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 5143, + "id": 5151, + "nodeType": "Return", + "src": "13238:56:15" + } + ] + }, + "functionSelector": "dbfa977f", + "id": 5153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5153, + "src": "13176:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5136, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13176:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 5153, + "src": "13193:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13193:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 5153, + "src": "13207:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5140, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13207:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "13175:45:15" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "13228:0:15" + }, + "scope": 5615, + "src": "13158:143:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5237, + "nodeType": "Block", + "src": "13413:528:15", + "statements": [ + { + "assignments": [ + 5169 + ], + "declarations": [ + { + "constant": false, + "id": 5169, + "mutability": "mutable", + "name": "domainSeparator", + "nodeType": "VariableDeclaration", + "scope": 5237, + "src": "13423:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13423:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5188, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 5173, + "name": "DOMAIN_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4350, + "src": "13470:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 5177, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4195, + "src": "13503:4:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13497:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5175, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13497:5:15", + "typeDescriptions": {} + } + }, + "id": 5178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13497:11:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5174, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "13487:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13487:22:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5180, + "name": "getChainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5614, + "src": "13511:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13511:12:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5184, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "13533:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governor_$5615", + "typeString": "contract Governor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Governor_$5615", + "typeString": "contract Governor" + } + ], + "id": 5183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13525:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13525:7:15", + "typeDescriptions": {} + } + }, + "id": 5185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13525:13:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 5171, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "13459:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "13459:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13459:80:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5170, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "13449:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13449:91:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13423:117:15" + }, + { + "assignments": [ + 5190 + ], + "declarations": [ + { + "constant": false, + "id": 5190, + "mutability": "mutable", + "name": "structHash", + "nodeType": "VariableDeclaration", + "scope": 5237, + "src": "13550:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5189, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13550:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5199, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 5194, + "name": "BALLOT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4356, + "src": "13592:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5195, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5155, + "src": "13609:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5196, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5157, + "src": "13621:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5192, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "13581:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "13581:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13581:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5191, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "13571:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13571:59:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13550:80:15" + }, + { + "assignments": [ + 5201 + ], + "declarations": [ + { + "constant": false, + "id": 5201, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "scope": 5237, + "src": "13640:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5200, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13640:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5210, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1901", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13684:10:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string hex\"1901\"" + }, + "value": "\u0019\u0001" + }, + { + "id": 5206, + "name": "domainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5169, + "src": "13696:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5207, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5190, + "src": "13713:10:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string hex\"1901\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 5203, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "13667:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "13667:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13667:57:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5202, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "13657:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13657:68:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13640:85:15" + }, + { + "assignments": [ + 5212 + ], + "declarations": [ + { + "constant": false, + "id": 5212, + "mutability": "mutable", + "name": "signatory", + "nodeType": "VariableDeclaration", + "scope": 5237, + "src": "13735:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13735:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 5219, + "initialValue": { + "arguments": [ + { + "id": 5214, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5201, + "src": "13765:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5215, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5159, + "src": "13773:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 5216, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5161, + "src": "13776:1:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5217, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5163, + "src": "13779:1:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5213, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "13755:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13755:26:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13735:46:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5221, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "13799:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 5224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13820:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13812:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13812:7:15", + "typeDescriptions": {} + } + }, + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13812:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13799:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265", + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13824:44:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48", + "typeString": "literal_string \"Governor::castVoteBySig: invalid signature\"" + }, + "value": "Governor::castVoteBySig: invalid signature" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fa1dc9275024123d23fb8f8146d32b2d75a1a7ecfab3302a80ea7f906115ac48", + "typeString": "literal_string \"Governor::castVoteBySig: invalid signature\"" + } + ], + "id": 5220, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13791:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13791:78:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5229, + "nodeType": "ExpressionStatement", + "src": "13791:78:15" + }, + { + "expression": { + "arguments": [ + { + "id": 5231, + "name": "signatory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "13896:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5232, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5155, + "src": "13907:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5233, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5157, + "src": "13919:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5234, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5165, + "src": "13928:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5230, + "name": "_castVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5372, + "src": "13886:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint96_$returns$__$", + "typeString": "function (address,uint256,bool,uint96)" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13886:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 5167, + "id": 5236, + "nodeType": "Return", + "src": "13879:55:15" + } + ] + }, + "functionSelector": "5d254608", + "id": 5238, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "castVoteBySig", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13330:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5154, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13330:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5157, + "mutability": "mutable", + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13347:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5156, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13347:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5159, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13361:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5158, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13361:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13370:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5160, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13370:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13381:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5162, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13381:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5165, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 5238, + "src": "13392:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5164, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13392:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "13329:76:15" + }, + "returnParameters": { + "id": 5167, + "nodeType": "ParameterList", + "parameters": [], + "src": "13413:0:15" + }, + "scope": 5615, + "src": "13307:634:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5371, + "nodeType": "Block", + "src": "14035:1111:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + }, + "id": 5255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 5251, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "14059:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5250, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "14053:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$4334_$", + "typeString": "function (uint256) view returns (enum Governor.ProposalState)" + } + }, + "id": 5252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14053:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 5253, + "name": "ProposalState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4334, + "src": "14074:13:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ProposalState_$4334_$", + "typeString": "type(enum Governor.ProposalState)" + } + }, + "id": 5254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Active", + "nodeType": "MemberAccess", + "src": "14074:20:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ProposalState_$4334", + "typeString": "enum Governor.ProposalState" + } + }, + "src": "14053:41:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f63617374566f74653a20766f74696e6720697320636c6f736564", + "id": 5256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14096:39:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b", + "typeString": "literal_string \"Governor::_castVote: voting is closed\"" + }, + "value": "Governor::_castVote: voting is closed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f160ae2c92057497b900e47f19054148a4ab3899a01bb791d94927f929f41f4b", + "typeString": "literal_string \"Governor::_castVote: voting is closed\"" + } + ], + "id": 5249, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14045:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14045:91:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "14045:91:15" + }, + { + "assignments": [ + 5260 + ], + "declarations": [ + { + "constant": false, + "id": 5260, + "mutability": "mutable", + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "14146:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + }, + "typeName": { + "id": 5259, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4318, + "src": "14146:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal" + } + }, + "visibility": "internal" + } + ], + "id": 5264, + "initialValue": { + "baseExpression": { + "id": 5261, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4339, + "src": "14174:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$4318_storage_$", + "typeString": "mapping(uint256 => struct Governor.Proposal storage ref)" + } + }, + "id": 5263, + "indexExpression": { + "id": 5262, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "14184:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14174:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage", + "typeString": "struct Governor.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14146:49:15" + }, + { + "assignments": [ + 5266 + ], + "declarations": [ + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "receipt", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "14205:23:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt" + }, + "typeName": { + "id": 5265, + "name": "Receipt", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4325, + "src": "14205:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt" + } + }, + "visibility": "internal" + } + ], + "id": 5271, + "initialValue": { + "baseExpression": { + "expression": { + "id": 5267, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14231:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "receipts", + "nodeType": "MemberAccess", + "referencedDeclaration": 4317, + "src": "14231:17:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Receipt_$4325_storage_$", + "typeString": "mapping(address => struct Governor.Receipt storage ref)" + } + }, + "id": 5270, + "indexExpression": { + "id": 5269, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5240, + "src": "14249:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14231:24:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage", + "typeString": "struct Governor.Receipt storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14205:50:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5273, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "14273:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt storage pointer" + } + }, + "id": 5274, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasVoted", + "nodeType": "MemberAccess", + "referencedDeclaration": 4320, + "src": "14273:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "66616c7365", + "id": 5275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "14273:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c726561647920766f746564", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14300:42:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a", + "typeString": "literal_string \"Governor::_castVote: voter already voted\"" + }, + "value": "Governor::_castVote: voter already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8fddd97c795997fc11e5b90b3e66f53c96a2939f170e456768790275163879a", + "typeString": "literal_string \"Governor::_castVote: voter already voted\"" + } + ], + "id": 5272, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14265:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14265:78:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5279, + "nodeType": "ExpressionStatement", + "src": "14265:78:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5281, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "14361:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14361:9:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f63617374566f74653a206e6f20656c696769626c6520766f746573207072696f7220746f2070726f706f73616c20737461727420626c6f636b", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14372:70:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e", + "typeString": "literal_string \"Governor::_castVote: no eligible votes prior to proposal start block\"" + }, + "value": "Governor::_castVote: no eligible votes prior to proposal start block" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_14d0dcca47a8473a8f0f5e7512ad3b7fb93dff8f3076e7ae4d2d8c1541058d2e", + "typeString": "literal_string \"Governor::_castVote: no eligible votes prior to proposal start block\"" + } + ], + "id": 5280, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14353:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14353:90:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "14353:90:15" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "eligibleVotes", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "14453:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5287, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14453:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 5298, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 5297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 5291, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5240, + "src": "14496:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 5292, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14503:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 4301, + "src": "14503:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5289, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "14476:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 5290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPriorVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 5688, + "src": "14476:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$", + "typeString": "function (address,uint256) view external returns (uint96)" + } + }, + "id": 5294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14476:47:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 5295, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "14526:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt storage pointer" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4324, + "src": "14526:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "14476:63:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14453:86:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5300, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "14557:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5301, + "name": "eligibleVotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "14566:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "14557:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f63617374566f74653a20766f746573206578636565647320656c696769626c6520616d6f756e74", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14581:52:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef", + "typeString": "literal_string \"Governor::_castVote: votes exceeds eligible amount\"" + }, + "value": "Governor::_castVote: votes exceeds eligible amount" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75d0cf779e3f259ecd650d43d7f4126936ea15be1db9a15246caab70ba4556ef", + "typeString": "literal_string \"Governor::_castVote: votes exceeds eligible amount\"" + } + ], + "id": 5299, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14549:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14549:85:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5305, + "nodeType": "ExpressionStatement", + "src": "14549:85:15" + }, + { + "assignments": [ + 5307 + ], + "declarations": [ + { + "constant": false, + "id": 5307, + "mutability": "mutable", + "name": "quadraticVote", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "14645:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5306, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14645:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 5314, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 5311, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "14680:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5310, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5602, + "src": "14675:4:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14675:11:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14668:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 5308, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14668:6:15", + "typeDescriptions": {} + } + }, + "id": 5313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14668:19:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14645:42:15" + }, + { + "condition": { + "id": 5315, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5244, + "src": "14702:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5337, + "nodeType": "Block", + "src": "14802:93:15", + "statements": [ + { + "expression": { + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5327, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14816:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4307, + "src": "14816:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 5331, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14847:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "againstVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4307, + "src": "14847:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5333, + "name": "quadraticVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "14870:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5330, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "14840:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14840:44:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14816:68:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5336, + "nodeType": "ExpressionStatement", + "src": "14816:68:15" + } + ] + }, + "id": 5338, + "nodeType": "IfStatement", + "src": "14698:197:15", + "trueBody": { + "id": 5326, + "nodeType": "Block", + "src": "14711:85:15", + "statements": [ + { + "expression": { + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5316, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14725:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4305, + "src": "14725:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 5320, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "14752:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$4318_storage_ptr", + "typeString": "struct Governor.Proposal storage pointer" + } + }, + "id": 5321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4305, + "src": "14752:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5322, + "name": "quadraticVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "14771:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5319, + "name": "add256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "14745:6:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14745:40:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14725:60:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5325, + "nodeType": "ExpressionStatement", + "src": "14725:60:15" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 5342, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5240, + "src": "14951:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5343, + "name": "votes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "14958:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "expression": { + "id": 5339, + "name": "dclm8", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4275, + "src": "14939:5:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Dclm8Interface_$5713", + "typeString": "contract Dclm8Interface" + } + }, + "id": 5341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5712, + "src": "14939:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint96_$returns$__$", + "typeString": "function (address,uint96) external" + } + }, + "id": 5344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14939:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5345, + "nodeType": "ExpressionStatement", + "src": "14939:25:15" + }, + { + "expression": { + "id": 5350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5346, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "14975:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt storage pointer" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hasVoted", + "nodeType": "MemberAccess", + "referencedDeclaration": 4320, + "src": "14975:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14994:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14975:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5351, + "nodeType": "ExpressionStatement", + "src": "14975:23:15" + }, + { + "expression": { + "id": 5356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5352, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "15008:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt storage pointer" + } + }, + "id": 5354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "support", + "nodeType": "MemberAccess", + "referencedDeclaration": 4322, + "src": "15008:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5355, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5244, + "src": "15026:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15008:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5357, + "nodeType": "ExpressionStatement", + "src": "15008:25:15" + }, + { + "expression": { + "id": 5362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5358, + "name": "receipt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "15043:7:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Receipt_$4325_storage_ptr", + "typeString": "struct Governor.Receipt storage pointer" + } + }, + "id": 5360, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "votes", + "nodeType": "MemberAccess", + "referencedDeclaration": 4324, + "src": "15043:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5361, + "name": "quadraticVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "15059:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "15043:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "id": 5363, + "nodeType": "ExpressionStatement", + "src": "15043:29:15" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5365, + "name": "voter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5240, + "src": "15097:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5366, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5242, + "src": "15104:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5367, + "name": "support", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5244, + "src": "15116:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5368, + "name": "quadraticVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "15125:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + ], + "id": 5364, + "name": "VoteCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "15088:8:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bool,uint256)" + } + }, + "id": 5369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15088:51:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5370, + "nodeType": "EmitStatement", + "src": "15083:56:15" + } + ] + }, + "id": 5372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_castVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5240, + "mutability": "mutable", + "name": "voter", + "nodeType": "VariableDeclaration", + "scope": 5372, + "src": "13966:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13966:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5242, + "mutability": "mutable", + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 5372, + "src": "13981:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13981:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5244, + "mutability": "mutable", + "name": "support", + "nodeType": "VariableDeclaration", + "scope": 5372, + "src": "13998:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5243, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13998:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5246, + "mutability": "mutable", + "name": "votes", + "nodeType": "VariableDeclaration", + "scope": 5372, + "src": "14012:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5245, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14012:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "13965:60:15" + }, + "returnParameters": { + "id": 5248, + "nodeType": "ParameterList", + "parameters": [], + "src": "14035:0:15" + }, + "scope": 5615, + "src": "13947:1199:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5388, + "nodeType": "Block", + "src": "15184:136:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5376, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15202:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15202:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5378, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "15216:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15202:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e646572206d75737420626520676f7620677561726469616e", + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15226:54:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed", + "typeString": "literal_string \"Governor::__acceptAdmin: sender must be gov guardian\"" + }, + "value": "Governor::__acceptAdmin: sender must be gov guardian" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a863165b3913b0f05b8d3fd7868a9b9cf46bb895145d85784ac0108136df92ed", + "typeString": "literal_string \"Governor::__acceptAdmin: sender must be gov guardian\"" + } + ], + "id": 5375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15194:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15194:87:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5382, + "nodeType": "ExpressionStatement", + "src": "15194:87:15" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 5383, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "15291:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 5385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 5628, + "src": "15291:20:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15291:22:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5387, + "nodeType": "ExpressionStatement", + "src": "15291:22:15" + } + ] + }, + "functionSelector": "b9a61961", + "id": 5389, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5373, + "nodeType": "ParameterList", + "parameters": [], + "src": "15174:2:15" + }, + "returnParameters": { + "id": 5374, + "nodeType": "ParameterList", + "parameters": [], + "src": "15184:0:15" + }, + "scope": 5615, + "src": "15152:168:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5407, + "nodeType": "Block", + "src": "15355:132:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15373:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15373:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5395, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "15387:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15373:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d75737420626520676f7620677561726469616e", + "id": 5397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15397:51:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad", + "typeString": "literal_string \"Governor::__abdicate: sender must be gov guardian\"" + }, + "value": "Governor::__abdicate: sender must be gov guardian" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_920579b34ecb505165c6d876e481fad8009c6d9324d8fd6e0896c5de30006aad", + "typeString": "literal_string \"Governor::__abdicate: sender must be gov guardian\"" + } + ], + "id": 5392, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15365:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15365:84:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5399, + "nodeType": "ExpressionStatement", + "src": "15365:84:15" + }, + { + "expression": { + "id": 5405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5400, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "15459:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "30", + "id": 5403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15478:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15470:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15470:7:15", + "typeDescriptions": {} + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15470:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "15459:21:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5406, + "nodeType": "ExpressionStatement", + "src": "15459:21:15" + } + ] + }, + "functionSelector": "760fbc13", + "id": 5408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__abdicate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5390, + "nodeType": "ParameterList", + "parameters": [], + "src": "15345:2:15" + }, + "returnParameters": { + "id": 5391, + "nodeType": "ParameterList", + "parameters": [], + "src": "15355:0:15" + }, + "scope": 5615, + "src": "15326:161:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "15575:240:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15593:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15593:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5418, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "15607:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15593:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f7620677561726469616e", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15617:71:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd", + "typeString": "literal_string \"Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian\"" + }, + "value": "Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0fbea3258988d2a95f7aba7b7f07081aca23fb0f7d7deb3794c4d1914b6d0bdd", + "typeString": "literal_string \"Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian\"" + } + ], + "id": 5415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15585:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15585:104:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5422, + "nodeType": "ExpressionStatement", + "src": "15585:104:15" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5428, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "15733:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + ], + "id": 5427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15725:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15725:7:15", + "typeDescriptions": {} + } + }, + "id": 5429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15725:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 5430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15744:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "73657450656e64696e6741646d696e286164647265737329", + "id": 5431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15747:26:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28", + "typeString": "literal_string \"setPendingAdmin(address)\"" + }, + "value": "setPendingAdmin(address)" + }, + { + "arguments": [ + { + "id": 5434, + "name": "newPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5410, + "src": "15786:15:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 5432, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "15775:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "15775:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15775:27:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5436, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "15804:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28", + "typeString": "literal_string \"setPendingAdmin(address)\"" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5423, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "15699:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queueTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 5650, + "src": "15699:25:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)" + } + }, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15699:109:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "15699:109:15" + } + ] + }, + "functionSelector": "91500671", + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__queueSetTimelockPendingAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5410, + "mutability": "mutable", + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 5440, + "src": "15533:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15533:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5412, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5440, + "src": "15558:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15558:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15532:35:15" + }, + "returnParameters": { + "id": 5414, + "nodeType": "ParameterList", + "parameters": [], + "src": "15575:0:15" + }, + "scope": 5615, + "src": "15493:322:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5471, + "nodeType": "Block", + "src": "15905:244:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5448, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15923:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15923:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5450, + "name": "guardian", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4278, + "src": "15937:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15923:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f7620677561726469616e", + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15947:73:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8", + "typeString": "literal_string \"Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian\"" + }, + "value": "Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3a977e977596eb1a7160202329cc99c0482b4fd8df81879128fce2cc089886f8", + "typeString": "literal_string \"Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian\"" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15915:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15915:106:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "15915:106:15" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5460, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "16067:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + ], + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16059:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16059:7:15", + "typeDescriptions": {} + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16059:17:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 5462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16078:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "73657450656e64696e6741646d696e286164647265737329", + "id": 5463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16081:26:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28", + "typeString": "literal_string \"setPendingAdmin(address)\"" + }, + "value": "setPendingAdmin(address)" + }, + { + "arguments": [ + { + "id": 5466, + "name": "newPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "16120:15:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 5464, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "16109:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "16109:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16109:27:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5468, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "16138:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28", + "typeString": "literal_string \"setPendingAdmin(address)\"" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5455, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4272, + "src": "16031:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TimelockInterface_$5679", + "typeString": "contract TimelockInterface" + } + }, + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "executeTransaction", + "nodeType": "MemberAccess", + "referencedDeclaration": 5678, + "src": "16031:27:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)" + } + }, + "id": 5469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16031:111:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5470, + "nodeType": "ExpressionStatement", + "src": "16031:111:15" + } + ] + }, + "functionSelector": "21f43e42", + "id": 5472, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "__executeSetTimelockPendingAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 5472, + "src": "15863:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15863:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5472, + "src": "15888:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15888:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15862:35:15" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "15905:0:15" + }, + "scope": 5615, + "src": "15821:328:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5496, + "nodeType": "Block", + "src": "16222:95:15", + "statements": [ + { + "assignments": [ + 5482 + ], + "declarations": [ + { + "constant": false, + "id": 5482, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 5496, + "src": "16232:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16232:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5486, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5483, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5474, + "src": "16241:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 5484, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5476, + "src": "16245:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16241:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16232:14:15" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5488, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5482, + "src": "16264:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5489, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5474, + "src": "16269:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16264:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6164646974696f6e206f766572666c6f77", + "id": 5491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16272:19:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5", + "typeString": "literal_string \"addition overflow\"" + }, + "value": "addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5", + "typeString": "literal_string \"addition overflow\"" + } + ], + "id": 5487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16256:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16256:36:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5493, + "nodeType": "ExpressionStatement", + "src": "16256:36:15" + }, + { + "expression": { + "id": 5494, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5482, + "src": "16309:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5480, + "id": 5495, + "nodeType": "Return", + "src": "16302:8:15" + } + ] + }, + "id": 5497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add256", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5474, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 5497, + "src": "16171:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5476, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 5497, + "src": "16182:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16182:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16170:22:15" + }, + "returnParameters": { + "id": 5480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5479, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5497, + "src": "16216:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5478, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16216:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16215:6:15" + }, + "scope": 5615, + "src": "16155:162:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5517, + "nodeType": "Block", + "src": "16390:79:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5507, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5501, + "src": "16408:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5508, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5499, + "src": "16413:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16408:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "7375627472616374696f6e20756e646572666c6f77", + "id": 5510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16416:23:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31", + "typeString": "literal_string \"subtraction underflow\"" + }, + "value": "subtraction underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31", + "typeString": "literal_string \"subtraction underflow\"" + } + ], + "id": 5506, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16400:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16400:40:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5512, + "nodeType": "ExpressionStatement", + "src": "16400:40:15" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5513, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5499, + "src": "16457:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 5514, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5501, + "src": "16461:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16457:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5505, + "id": 5516, + "nodeType": "Return", + "src": "16450:12:15" + } + ] + }, + "id": 5518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub256", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 5518, + "src": "16339:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5498, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16339:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5501, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 5518, + "src": "16350:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16350:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16338:22:15" + }, + "returnParameters": { + "id": 5505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5518, + "src": "16384:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5503, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16384:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16383:6:15" + }, + "scope": 5615, + "src": "16323:146:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5533, + "nodeType": "Block", + "src": "16545:54:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5528, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5520, + "src": "16567:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5529, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5522, + "src": "16570:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "6469766973696f6e206279207a65726f", + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16573:18:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cd3c10b55907e48338737379efe9c37ec6c722ac546c8c49bdc1df7e91509535", + "typeString": "literal_string \"division by zero\"" + }, + "value": "division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_cd3c10b55907e48338737379efe9c37ec6c722ac546c8c49bdc1df7e91509535", + "typeString": "literal_string \"division by zero\"" + } + ], + "id": 5527, + "name": "_div", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5561, + "src": "16562:4:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16562:30:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5526, + "id": 5532, + "nodeType": "Return", + "src": "16555:37:15" + } + ] + }, + "id": 5534, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div256", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 5534, + "src": "16491:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16491:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5522, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 5534, + "src": "16502:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16502:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16490:22:15" + }, + "returnParameters": { + "id": 5526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5525, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5534, + "src": "16536:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16536:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16535:9:15" + }, + "scope": 5615, + "src": "16475:124:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5560, + "nodeType": "Block", + "src": "16701:90:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5546, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5538, + "src": "16719:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16723:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16719:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5549, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5540, + "src": "16726:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5545, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16711:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16711:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5551, + "nodeType": "ExpressionStatement", + "src": "16711:28:15" + }, + { + "assignments": [ + 5553 + ], + "declarations": [ + { + "constant": false, + "id": 5553, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 5560, + "src": "16749:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16749:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5557, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5554, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5536, + "src": "16761:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 5555, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5538, + "src": "16765:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16761:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16749:17:15" + }, + { + "expression": { + "id": 5558, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5553, + "src": "16783:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5544, + "id": 5559, + "nodeType": "Return", + "src": "16776:8:15" + } + ] + }, + "id": 5561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5536, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "16619:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16619:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5538, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "16630:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16630:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "16641:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5539, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16641:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16618:50:15" + }, + "returnParameters": { + "id": 5544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5543, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "16692:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16692:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16691:9:15" + }, + "scope": 5615, + "src": "16605:186:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5601, + "nodeType": "Block", + "src": "16850:138:15", + "statements": [ + { + "assignments": [ + 5569 + ], + "declarations": [ + { + "constant": false, + "id": 5569, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "scope": 5601, + "src": "16860:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5568, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16860:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5576, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5570, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5563, + "src": "16870:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 5571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16874:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16870:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5573, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16869:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 5574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16879:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "16869:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16860:20:15" + }, + { + "expression": { + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5577, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "16890:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5578, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5563, + "src": "16894:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16890:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5580, + "nodeType": "ExpressionStatement", + "src": "16890:5:15" + }, + { + "body": { + "id": 5599, + "nodeType": "Block", + "src": "16919:63:15", + "statements": [ + { + "expression": { + "id": 5586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5584, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "16933:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5585, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16937:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16933:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5587, + "nodeType": "ExpressionStatement", + "src": "16933:5:15" + }, + { + "expression": { + "id": 5597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5588, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16952:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5563, + "src": "16957:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 5590, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16961:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16957:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 5592, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16965:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16957:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5594, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16956:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 5595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16970:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "16956:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16952:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5598, + "nodeType": "ExpressionStatement", + "src": "16952:19:15" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16912:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 5582, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5566, + "src": "16916:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16912:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5600, + "nodeType": "WhileStatement", + "src": "16905:77:15" + } + ] + }, + "id": 5602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5563, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "16811:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16811:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16810:8:15" + }, + "returnParameters": { + "id": 5567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "16842:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16842:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16841:8:15" + }, + "scope": 5615, + "src": "16797:191:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5613, + "nodeType": "Block", + "src": "17045:95:15", + "statements": [ + { + "assignments": [ + 5608 + ], + "declarations": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "chainId", + "nodeType": "VariableDeclaration", + "scope": 5613, + "src": "17055:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5607, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17055:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5609, + "nodeType": "VariableDeclarationStatement", + "src": "17055:12:15" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "17086:24:15", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17088:20:15", + "value": { + "arguments": [], + "functionName": { + "name": "chainid", + "nodeType": "YulIdentifier", + "src": "17099:7:15" + }, + "nodeType": "YulFunctionCall", + "src": "17099:9:15" + }, + "variableNames": [ + { + "name": "chainId", + "nodeType": "YulIdentifier", + "src": "17088:7:15" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 5608, + "isOffset": false, + "isSlot": false, + "src": "17088:7:15", + "valueSize": 1 + } + ], + "id": 5610, + "nodeType": "InlineAssembly", + "src": "17077:33:15" + }, + { + "expression": { + "id": 5611, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5608, + "src": "17126:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5606, + "id": 5612, + "nodeType": "Return", + "src": "17119:14:15" + } + ] + }, + "id": 5614, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getChainId", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "17013:2:15" + }, + "returnParameters": { + "id": 5606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5605, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5614, + "src": "17039:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5604, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17039:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17038:6:15" + }, + "scope": 5615, + "src": "16994:146:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 5714, + "src": "1764:15378:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 5679, + "linearizedBaseContracts": [ + 5679 + ], + "name": "TimelockInterface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "6a42b8f8", + "id": 5620, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "delay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "17192:2:15" + }, + "returnParameters": { + "id": 5619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5618, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5620, + "src": "17218:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17218:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17217:6:15" + }, + "scope": 5679, + "src": "17178:46:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c1a287e2", + "id": 5625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "GRACE_PERIOD", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5621, + "nodeType": "ParameterList", + "parameters": [], + "src": "17250:2:15" + }, + "returnParameters": { + "id": 5624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5623, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5625, + "src": "17276:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5622, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17276:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17275:6:15" + }, + "scope": 5679, + "src": "17229:53:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0e18b681", + "id": 5628, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5626, + "nodeType": "ParameterList", + "parameters": [], + "src": "17307:2:15" + }, + "returnParameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [], + "src": "17318:0:15" + }, + "scope": 5679, + "src": "17287:32:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f2b06537", + "id": 5635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queuedTransactions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5630, + "mutability": "mutable", + "name": "hash", + "nodeType": "VariableDeclaration", + "scope": 5635, + "src": "17352:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5629, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17352:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17351:14:15" + }, + "returnParameters": { + "id": 5634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5633, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5635, + "src": "17389:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5632, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17389:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "17388:6:15" + }, + "scope": 5679, + "src": "17324:71:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "3a66f901", + "id": 5650, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5637, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17426:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17426:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5639, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17442:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17442:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5641, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17454:25:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5640, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17454:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5643, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17481:19:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5642, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17481:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5645, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17502:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17502:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17425:86:15" + }, + "returnParameters": { + "id": 5649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5648, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "17530:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5647, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17530:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17529:9:15" + }, + "scope": 5679, + "src": "17400:139:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "591fcdfe", + "id": 5663, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5652, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5663, + "src": "17571:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17571:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5654, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5663, + "src": "17587:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5653, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17587:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5656, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5663, + "src": "17599:25:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5655, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17599:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5658, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5663, + "src": "17626:19:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5657, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17626:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5660, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5663, + "src": "17647:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17647:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17570:86:15" + }, + "returnParameters": { + "id": 5662, + "nodeType": "ParameterList", + "parameters": [], + "src": "17665:0:15" + }, + "scope": 5679, + "src": "17544:122:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "0825f38f", + "id": 5678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5665, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17699:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17699:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5667, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17715:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17715:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5669, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17727:25:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17727:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5671, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17754:19:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5670, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17754:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5673, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17775:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17775:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17698:86:15" + }, + "returnParameters": { + "id": 5677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5676, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5678, + "src": "17811:12:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5675, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17811:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "17810:14:15" + }, + "scope": 5679, + "src": "17671:154:15", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 5714, + "src": "17144:683:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 5713, + "linearizedBaseContracts": [ + 5713 + ], + "name": "Dclm8Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "782d6fe1", + "id": 5688, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriorVotes", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5681, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 5688, + "src": "17883:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17883:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5683, + "mutability": "mutable", + "name": "blockNumber", + "nodeType": "VariableDeclaration", + "scope": 5688, + "src": "17900:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5682, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17900:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17882:35:15" + }, + "returnParameters": { + "id": 5687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5688, + "src": "17941:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5685, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "17941:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "17940:8:15" + }, + "scope": 5713, + "src": "17860:89:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "c4e41b22", + "id": 5693, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTotalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5689, + "nodeType": "ParameterList", + "parameters": [], + "src": "17977:2:15" + }, + "returnParameters": { + "id": 5692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5691, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5693, + "src": "18003:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18003:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18002:6:15" + }, + "scope": 5713, + "src": "17954:55:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 5700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5695, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 5700, + "src": "18033:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18033:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18032:17:15" + }, + "returnParameters": { + "id": 5699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5698, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5700, + "src": "18073:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5697, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18073:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18072:6:15" + }, + "scope": 5713, + "src": "18014:65:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ae80d9de", + "id": 5705, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getInitialHolder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5701, + "nodeType": "ParameterList", + "parameters": [], + "src": "18109:2:15" + }, + "returnParameters": { + "id": 5704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5703, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5705, + "src": "18135:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5702, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18135:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18134:9:15" + }, + "scope": 5713, + "src": "18084:60:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "72d3ee9e", + "id": 5712, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 5712, + "src": "18164:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18164:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 5712, + "src": "18181:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 5708, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "18181:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "18163:32:15" + }, + "returnParameters": { + "id": 5711, + "nodeType": "ParameterList", + "parameters": [], + "src": "18204:0:15" + }, + "scope": 5713, + "src": "18149:56:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 5714, + "src": "17829:378:15" + } + ], + "src": "0:18208:15" + }, + "id": 15 + }, + "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol": { + "ast": { + "absolutePath": "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol", + "exportedSymbols": { + "SafeMath": [ + 3055 + ], + "Timelock": [ + 6176 + ] + }, + "id": 6177, + "license": "BSD-3-Clause", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5715, + "literals": [ + "solidity", + "^", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:16" + }, + { + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 5716, + "nodeType": "ImportDirective", + "scope": 6177, + "sourceUnit": 3056, + "src": "1714:51:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 6176, + "linearizedBaseContracts": [ + 6176 + ], + "name": "Timelock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5719, + "libraryName": { + "id": 5717, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3055, + "src": "1797:8:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3055", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1791:24:16", + "typeName": { + "id": 5718, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1810:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "id": 5723, + "name": "NewAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 5722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5721, + "indexed": true, + "mutability": "mutable", + "name": "newAdmin", + "nodeType": "VariableDeclaration", + "scope": 5723, + "src": "1836:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1836:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1835:26:16" + }, + "src": "1821:41:16" + }, + { + "anonymous": false, + "id": 5727, + "name": "NewPendingAdmin", + "nodeType": "EventDefinition", + "parameters": { + "id": 5726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5725, + "indexed": true, + "mutability": "mutable", + "name": "newPendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 5727, + "src": "1889:31:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1889:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1888:33:16" + }, + "src": "1867:55:16" + }, + { + "anonymous": false, + "id": 5731, + "name": "NewDelay", + "nodeType": "EventDefinition", + "parameters": { + "id": 5730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5729, + "indexed": true, + "mutability": "mutable", + "name": "newDelay", + "nodeType": "VariableDeclaration", + "scope": 5731, + "src": "1942:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1942:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1941:23:16" + }, + "src": "1927:38:16" + }, + { + "anonymous": false, + "id": 5745, + "name": "CancelTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 5744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5733, + "indexed": true, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "1994:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5732, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1994:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5735, + "indexed": true, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "2018:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2018:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5737, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "2042:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5736, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2042:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5739, + "indexed": false, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "2054:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2054:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5741, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "2073:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5740, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2073:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5743, + "indexed": false, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5745, + "src": "2085:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5742, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2085:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1993:101:16" + }, + "src": "1970:125:16" + }, + { + "anonymous": false, + "id": 5759, + "name": "ExecuteTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 5758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5747, + "indexed": true, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2125:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5746, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2125:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5749, + "indexed": true, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2149:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2149:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5751, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2173:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5750, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2173:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5753, + "indexed": false, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2185:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5752, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2185:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5755, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2204:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5754, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2204:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5757, + "indexed": false, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5759, + "src": "2216:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5756, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2216:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2124:101:16" + }, + "src": "2100:126:16" + }, + { + "anonymous": false, + "id": 5773, + "name": "QueueTransaction", + "nodeType": "EventDefinition", + "parameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5761, + "indexed": true, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2254:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5760, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2254:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5763, + "indexed": true, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2278:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2278:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5765, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2302:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5764, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2302:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5767, + "indexed": false, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2314:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5766, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2314:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5769, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2332:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5768, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2332:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5771, + "indexed": false, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "2344:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5770, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2344:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2253:100:16" + }, + "src": "2231:123:16" + }, + { + "constant": true, + "functionSelector": "c1a287e2", + "id": 5776, + "mutability": "constant", + "name": "GRACE_PERIOD", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2360:43:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5774, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2360:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134", + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2396:7:16", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_1209600_by_1", + "typeString": "int_const 1209600" + }, + "value": "14" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "b1b43ae5", + "id": 5779, + "mutability": "constant", + "name": "MINIMUM_DELAY", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2409:43:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5777, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2409:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2446:6:16", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_172800_by_1", + "typeString": "int_const 172800" + }, + "value": "2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "7d645fab", + "id": 5782, + "mutability": "constant", + "name": "MAXIMUM_DELAY", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2458:44:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2458:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3330", + "id": 5781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2495:7:16", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_2592000_by_1", + "typeString": "int_const 2592000" + }, + "value": "30" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f851a440", + "id": 5784, + "mutability": "mutable", + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2509:20:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2509:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "26782247", + "id": 5786, + "mutability": "mutable", + "name": "pendingAdmin", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2535:27:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2535:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6a42b8f8", + "id": 5788, + "mutability": "mutable", + "name": "delay", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2568:17:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2568:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f2b06537", + "id": 5792, + "mutability": "mutable", + "name": "queuedTransactions", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "2592:51:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 5791, + "keyType": { + "id": 5789, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2601:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2592:25:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 5790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2612:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 5821, + "nodeType": "Block", + "src": "2692:259:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5800, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5796, + "src": "2710:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5801, + "name": "MINIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5779, + "src": "2720:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2710:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "id": 5803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2735:57:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f", + "typeString": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"" + }, + "value": "Timelock::constructor: Delay must exceed minimum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f", + "typeString": "literal_string \"Timelock::constructor: Delay must exceed minimum delay.\"" + } + ], + "id": 5799, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2702:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2702:91:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5805, + "nodeType": "ExpressionStatement", + "src": "2702:91:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5807, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5796, + "src": "2811:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5808, + "name": "MAXIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5782, + "src": "2821:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2811:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "id": 5810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2836:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + }, + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "id": 5806, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2803:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2803:92:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5812, + "nodeType": "ExpressionStatement", + "src": "2803:92:16" + }, + { + "expression": { + "id": 5815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5813, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "2906:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5814, + "name": "admin_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5794, + "src": "2914:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2906:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5816, + "nodeType": "ExpressionStatement", + "src": "2906:14:16" + }, + { + "expression": { + "id": 5819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5817, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5788, + "src": "2930:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5818, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5796, + "src": "2938:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2930:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5820, + "nodeType": "ExpressionStatement", + "src": "2930:14:16" + } + ] + }, + "id": 5822, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5794, + "mutability": "mutable", + "name": "admin_", + "nodeType": "VariableDeclaration", + "scope": 5822, + "src": "2663:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5796, + "mutability": "mutable", + "name": "delay_", + "nodeType": "VariableDeclaration", + "scope": 5822, + "src": "2679:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2679:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2662:29:16" + }, + "returnParameters": { + "id": 5798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2692:0:16" + }, + "scope": 6176, + "src": "2651:300:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5825, + "nodeType": "Block", + "src": "2985:3:16", + "statements": [] + }, + "id": 5826, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5823, + "nodeType": "ParameterList", + "parameters": [], + "src": "2965:2:16" + }, + "returnParameters": { + "id": 5824, + "nodeType": "ParameterList", + "parameters": [], + "src": "2985:0:16" + }, + "scope": 6176, + "src": "2957:31:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5829, + "nodeType": "Block", + "src": "3021:3:16", + "statements": [] + }, + "id": 5830, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5827, + "nodeType": "ParameterList", + "parameters": [], + "src": "3001:2:16" + }, + "returnParameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3021:0:16" + }, + "scope": 6176, + "src": "2994:30:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5868, + "nodeType": "Block", + "src": "3068:361:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5836, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3086:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3086:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 5840, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3108:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Timelock_$6176", + "typeString": "contract Timelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$6176", + "typeString": "contract Timelock" + } + ], + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3100:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3100:7:16", + "typeDescriptions": {} + } + }, + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3100:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3086:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3115:51:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d", + "typeString": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"" + }, + "value": "Timelock::setDelay: Call must come from Timelock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d", + "typeString": "literal_string \"Timelock::setDelay: Call must come from Timelock.\"" + } + ], + "id": 5835, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3078:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3078:89:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5845, + "nodeType": "ExpressionStatement", + "src": "3078:89:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5847, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5832, + "src": "3185:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5848, + "name": "MINIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5779, + "src": "3195:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3185:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e", + "id": 5850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3210:54:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d", + "typeString": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"" + }, + "value": "Timelock::setDelay: Delay must exceed minimum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d", + "typeString": "literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\"" + } + ], + "id": 5846, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3177:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3177:88:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5852, + "nodeType": "ExpressionStatement", + "src": "3177:88:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5854, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5832, + "src": "3283:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5855, + "name": "MAXIMUM_DELAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5782, + "src": "3293:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3283:23:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3308:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + }, + "value": "Timelock::setDelay: Delay must not exceed maximum delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0", + "typeString": "literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\"" + } + ], + "id": 5853, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3275:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3275:92:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5859, + "nodeType": "ExpressionStatement", + "src": "3275:92:16" + }, + { + "expression": { + "id": 5862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5860, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5788, + "src": "3377:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5861, + "name": "delay_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5832, + "src": "3385:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3377:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5863, + "nodeType": "ExpressionStatement", + "src": "3377:14:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5865, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5788, + "src": "3416:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5864, + "name": "NewDelay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "3407:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3407:15:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5867, + "nodeType": "EmitStatement", + "src": "3402:20:16" + } + ] + }, + "functionSelector": "e177246e", + "id": 5869, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setDelay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5832, + "mutability": "mutable", + "name": "delay_", + "nodeType": "VariableDeclaration", + "scope": 5869, + "src": "3048:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5831, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3048:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3047:13:16" + }, + "returnParameters": { + "id": 5834, + "nodeType": "ParameterList", + "parameters": [], + "src": "3068:0:16" + }, + "scope": 6176, + "src": "3030:399:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5896, + "nodeType": "Block", + "src": "3465:206:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5873, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3483:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3483:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5875, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "3497:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3483:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e", + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3511:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3", + "typeString": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"" + }, + "value": "Timelock::acceptAdmin: Call must come from pendingAdmin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3", + "typeString": "literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\"" + } + ], + "id": 5872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3475:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3475:95:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5879, + "nodeType": "ExpressionStatement", + "src": "3475:95:16" + }, + { + "expression": { + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5880, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "3580:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 5881, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3588:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3588:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3580:18:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5884, + "nodeType": "ExpressionStatement", + "src": "3580:18:16" + }, + { + "expression": { + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5885, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "3608:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "30", + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3631:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3623:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3623:7:16", + "typeDescriptions": {} + } + }, + "id": 5889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3623:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3608:25:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5891, + "nodeType": "ExpressionStatement", + "src": "3608:25:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5893, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "3658:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5892, + "name": "NewAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5723, + "src": "3649:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:15:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5895, + "nodeType": "EmitStatement", + "src": "3644:20:16" + } + ] + }, + "functionSelector": "0e18b681", + "id": 5897, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "acceptAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5870, + "nodeType": "ParameterList", + "parameters": [], + "src": "3455:2:16" + }, + "returnParameters": { + "id": 5871, + "nodeType": "ParameterList", + "parameters": [], + "src": "3465:0:16" + }, + "scope": 6176, + "src": "3435:236:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5921, + "nodeType": "Block", + "src": "3732:196:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 5909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3750:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3750:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 5907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3772:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Timelock_$6176", + "typeString": "contract Timelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Timelock_$6176", + "typeString": "contract Timelock" + } + ], + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3764:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3764:7:16", + "typeDescriptions": {} + } + }, + "id": 5908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3764:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3750:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e", + "id": 5910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3779:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815", + "typeString": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"" + }, + "value": "Timelock::setPendingAdmin: Call must come from Timelock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815", + "typeString": "literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\"" + } + ], + "id": 5902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3742:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3742:96:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5912, + "nodeType": "ExpressionStatement", + "src": "3742:96:16" + }, + { + "expression": { + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5913, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "3848:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5914, + "name": "pendingAdmin_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3863:13:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3848:28:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "3848:28:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5918, + "name": "pendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "3908:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5917, + "name": "NewPendingAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "3892:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3892:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5920, + "nodeType": "EmitStatement", + "src": "3887:34:16" + } + ] + }, + "functionSelector": "4dd18bf5", + "id": 5922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setPendingAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5899, + "mutability": "mutable", + "name": "pendingAdmin_", + "nodeType": "VariableDeclaration", + "scope": 5922, + "src": "3702:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3701:23:16" + }, + "returnParameters": { + "id": 5901, + "nodeType": "ParameterList", + "parameters": [], + "src": "3732:0:16" + }, + "scope": 6176, + "src": "3677:251:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5986, + "nodeType": "Block", + "src": "4067:465:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5938, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4085:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4085:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5940, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "4099:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4085:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 5942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4106:56:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749", + "typeString": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"" + }, + "value": "Timelock::queueTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749", + "typeString": "literal_string \"Timelock::queueTransaction: Call must come from admin.\"" + } + ], + "id": 5937, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4077:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4077:86:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5944, + "nodeType": "ExpressionStatement", + "src": "4077:86:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5946, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5932, + "src": "4181:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "arguments": [ + { + "id": 5950, + "name": "delay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5788, + "src": "4212:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5947, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6175, + "src": "4188:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4188:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2888, + "src": "4188:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 5951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4188:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4181:37:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e", + "id": 5953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4220:75:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c", + "typeString": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"" + }, + "value": "Timelock::queueTransaction: Estimated execution block must satisfy delay." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c", + "typeString": "literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"" + } + ], + "id": 5945, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4173:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4173:123:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5955, + "nodeType": "ExpressionStatement", + "src": "4173:123:16" + }, + { + "assignments": [ + 5957 + ], + "declarations": [ + { + "constant": false, + "id": 5957, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 5986, + "src": "4307:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5956, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4307:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5968, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 5961, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5924, + "src": "4345:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5962, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5926, + "src": "4353:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5963, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5928, + "src": "4360:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5964, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5930, + "src": "4371:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5965, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5932, + "src": "4377:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5959, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4334:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "4334:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4334:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5958, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4324:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4324:58:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4307:75:16" + }, + { + "expression": { + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5969, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "4392:18:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 5971, + "indexExpression": { + "id": 5970, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5957, + "src": "4411:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4392:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4421:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4392:33:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5974, + "nodeType": "ExpressionStatement", + "src": "4392:33:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5976, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5957, + "src": "4458:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5977, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5924, + "src": "4466:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 5978, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5926, + "src": "4474:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5979, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5928, + "src": "4481:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5980, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5930, + "src": "4492:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5981, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5932, + "src": "4498:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5975, + "name": "QueueTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5773, + "src": "4441:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 5982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4441:61:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5983, + "nodeType": "EmitStatement", + "src": "4436:66:16" + }, + { + "expression": { + "id": 5984, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5957, + "src": "4519:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5936, + "id": 5985, + "nodeType": "Return", + "src": "4512:13:16" + } + ] + }, + "functionSelector": "3a66f901", + "id": 5987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queueTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5924, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "3960:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3960:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5926, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "3976:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5925, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3976:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5928, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "3988:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3988:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5930, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "4013:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5929, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4013:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5932, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "4032:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5931, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4032:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3959:82:16" + }, + "returnParameters": { + "id": 5936, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5935, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5987, + "src": "4058:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5934, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4058:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4057:9:16" + }, + "scope": 6176, + "src": "3934:598:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6036, + "nodeType": "Block", + "src": "4654:312:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6001, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4672:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4672:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6003, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "4686:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4672:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4693:57:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d", + "typeString": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"" + }, + "value": "Timelock::cancelTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d", + "typeString": "literal_string \"Timelock::cancelTransaction: Call must come from admin.\"" + } + ], + "id": 6000, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4664:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4664:87:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6007, + "nodeType": "ExpressionStatement", + "src": "4664:87:16" + }, + { + "assignments": [ + 6009 + ], + "declarations": [ + { + "constant": false, + "id": 6009, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 6036, + "src": "4762:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6008, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4762:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6020, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 6013, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5989, + "src": "4800:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6014, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5991, + "src": "4808:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6015, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5993, + "src": "4815:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6016, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5995, + "src": "4826:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6017, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5997, + "src": "4832:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6011, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4789:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 6012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "4789:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4789:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6010, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4779:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:58:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4762:75:16" + }, + { + "expression": { + "id": 6025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6021, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "4847:18:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 6023, + "indexExpression": { + "id": 6022, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6009, + "src": "4866:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4847:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 6024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4876:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4847:34:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6026, + "nodeType": "ExpressionStatement", + "src": "4847:34:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 6028, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6009, + "src": "4915:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6029, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5989, + "src": "4923:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6030, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5991, + "src": "4931:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6031, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5993, + "src": "4938:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6032, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5995, + "src": "4949:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6033, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5997, + "src": "4955:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6027, + "name": "CancelTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5745, + "src": "4897:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 6034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4897:62:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6035, + "nodeType": "EmitStatement", + "src": "4892:67:16" + } + ] + }, + "functionSelector": "591fcdfe", + "id": 6037, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cancelTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5989, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 6037, + "src": "4565:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5988, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4565:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5991, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6037, + "src": "4581:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5990, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4581:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5993, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 6037, + "src": "4593:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5992, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4593:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5995, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 6037, + "src": "4618:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5994, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4618:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5997, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 6037, + "src": "4637:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5996, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4637:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4564:82:16" + }, + "returnParameters": { + "id": 5999, + "nodeType": "ParameterList", + "parameters": [], + "src": "4654:0:16" + }, + "scope": 6176, + "src": "4538:428:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6165, + "nodeType": "Block", + "src": "5120:1084:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5138:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5138:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6055, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5784, + "src": "5152:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5138:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e", + "id": 6057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5159:58:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947", + "typeString": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"" + }, + "value": "Timelock::executeTransaction: Call must come from admin." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947", + "typeString": "literal_string \"Timelock::executeTransaction: Call must come from admin.\"" + } + ], + "id": 6052, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5130:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5130:88:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6059, + "nodeType": "ExpressionStatement", + "src": "5130:88:16" + }, + { + "assignments": [ + 6061 + ], + "declarations": [ + { + "constant": false, + "id": 6061, + "mutability": "mutable", + "name": "txHash", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "5229:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6060, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5229:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6072, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 6065, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6039, + "src": "5267:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6066, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6041, + "src": "5275:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6067, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6043, + "src": "5282:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6068, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "5293:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6069, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "5299:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6063, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "5256:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 6064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "5256:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 6070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5256:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6062, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "5246:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5246:58:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5229:75:16" + }, + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 6074, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "5322:18:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 6076, + "indexExpression": { + "id": 6075, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6061, + "src": "5341:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5322:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e", + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5350:63:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"" + }, + "value": "Timelock::executeTransaction: Transaction hasn't been queued." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\"" + } + ], + "id": 6073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5314:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5314:100:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6079, + "nodeType": "ExpressionStatement", + "src": "5314:100:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6081, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6175, + "src": "5432:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5432:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 6083, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "5455:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5432:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e", + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5460:71:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"" + }, + "value": "Timelock::executeTransaction: Transaction hasn't surpassed time lock." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\"" + } + ], + "id": 6080, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5424:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5424:108:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6087, + "nodeType": "ExpressionStatement", + "src": "5424:108:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6089, + "name": "getBlockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6175, + "src": "5550:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5550:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "id": 6093, + "name": "GRACE_PERIOD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5776, + "src": "5581:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6091, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "5573:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2888, + "src": "5573:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5573:21:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5550:44:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e", + "id": 6096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5596:53:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"" + }, + "value": "Timelock::executeTransaction: Transaction is stale." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction is stale.\"" + } + ], + "id": 6088, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5542:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5542:108:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6098, + "nodeType": "ExpressionStatement", + "src": "5542:108:16" + }, + { + "expression": { + "id": 6103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 6099, + "name": "queuedTransactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5792, + "src": "5661:18:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 6101, + "indexExpression": { + "id": 6100, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6061, + "src": "5680:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5661:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 6102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5690:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5661:34:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6104, + "nodeType": "ExpressionStatement", + "src": "5661:34:16" + }, + { + "assignments": [ + 6106 + ], + "declarations": [ + { + "constant": false, + "id": 6106, + "mutability": "mutable", + "name": "callData", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "5706:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5706:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6107, + "nodeType": "VariableDeclarationStatement", + "src": "5706:21:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6110, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6043, + "src": "5748:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5742:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6108, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5742:5:16", + "typeDescriptions": {} + } + }, + "id": 6111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5742:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5742:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5769:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5742:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6136, + "nodeType": "Block", + "src": "5818:95:16", + "statements": [ + { + "expression": { + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6120, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6106, + "src": "5832:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 6128, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6043, + "src": "5883:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5877:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 6126, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5877:5:16", + "typeDescriptions": {} + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5877:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6125, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "5867:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5867:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5860:6:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 6123, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5860:6:16", + "typeDescriptions": {} + } + }, + "id": 6131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:35:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 6132, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "5897:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 6121, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "5843:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 6122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "5843:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 6133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5843:59:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "5832:70:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6135, + "nodeType": "ExpressionStatement", + "src": "5832:70:16" + } + ] + }, + "id": 6137, + "nodeType": "IfStatement", + "src": "5738:175:16", + "trueBody": { + "id": 6119, + "nodeType": "Block", + "src": "5772:40:16", + "statements": [ + { + "expression": { + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6115, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6106, + "src": "5786:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6116, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "5797:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "5786:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6118, + "nodeType": "ExpressionStatement", + "src": "5786:15:16" + } + ] + } + }, + { + "assignments": [ + 6139, + 6141 + ], + "declarations": [ + { + "constant": false, + "id": 6139, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "5924:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5924:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6141, + "mutability": "mutable", + "name": "returnData", + "nodeType": "VariableDeclaration", + "scope": 6165, + "src": "5938:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6140, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5938:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6148, + "initialValue": { + "arguments": [ + { + "id": 6146, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6106, + "src": "5990:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 6142, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6039, + "src": "5965:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5965:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 6145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 6144, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6041, + "src": "5983:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5965:24:16", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5965:34:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5923:76:16" + }, + { + "expression": { + "arguments": [ + { + "id": 6150, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6139, + "src": "6017:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e", + "id": 6151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6026:63:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"" + }, + "value": "Timelock::executeTransaction: Transaction execution reverted." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9", + "typeString": "literal_string \"Timelock::executeTransaction: Transaction execution reverted.\"" + } + ], + "id": 6149, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6009:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6009:81:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6153, + "nodeType": "ExpressionStatement", + "src": "6009:81:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 6155, + "name": "txHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6061, + "src": "6125:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6156, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6039, + "src": "6133:6:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6157, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6041, + "src": "6141:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6158, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6043, + "src": "6148:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6159, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "6159:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6160, + "name": "eta", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "6165:3:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6154, + "name": "ExecuteTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5759, + "src": "6106:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32,address,uint256,string memory,bytes memory,uint256)" + } + }, + "id": 6161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:63:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6162, + "nodeType": "EmitStatement", + "src": "6101:68:16" + }, + { + "expression": { + "id": 6163, + "name": "returnData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6141, + "src": "6187:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6051, + "id": 6164, + "nodeType": "Return", + "src": "6180:17:16" + } + ] + }, + "functionSelector": "0825f38f", + "id": 6166, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6039, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5000:14:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5000:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6041, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5016:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5016:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6043, + "mutability": "mutable", + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5028:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6042, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5028:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6045, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5053:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6044, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5053:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6047, + "mutability": "mutable", + "name": "eta", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5072:8:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6046, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5072:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4999:82:16" + }, + "returnParameters": { + "id": 6051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6050, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6166, + "src": "5106:12:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6049, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5106:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5105:14:16" + }, + "scope": 6176, + "src": "4972:1232:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6174, + "nodeType": "Block", + "src": "6268:101:16", + "statements": [ + { + "expression": { + "expression": { + "id": 6171, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6347:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 6172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6347:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6170, + "id": 6173, + "nodeType": "Return", + "src": "6340:22:16" + } + ] + }, + "id": 6175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBlockTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6167, + "nodeType": "ParameterList", + "parameters": [], + "src": "6236:2:16" + }, + "returnParameters": { + "id": 6170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6169, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6175, + "src": "6262:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6262:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6261:6:16" + }, + "scope": 6176, + "src": "6210:159:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6177, + "src": "1767:4604:16" + } + ], + "src": "0:6372:16" + }, + "id": 16 + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol": { + "ast": { + "absolutePath": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 307 + ], + "AddressUpgradeable": [ + 2272 + ], + "ContextUpgradeable": [ + 2317 + ], + "CountersUpgradeable": [ + 2367 + ], + "ERC1155Upgradeable": [ + 1850 + ], + "ERC165Upgradeable": [ + 382 + ], + "EnumerableSetUpgradeable": [ + 2859 + ], + "IERC1155MetadataURIUpgradeable": [ + 1865 + ], + "IERC1155ReceiverUpgradeable": [ + 1906 + ], + "IERC1155Upgradeable": [ + 2028 + ], + "IERC165Upgradeable": [ + 394 + ], + "Initializable": [ + 815 + ], + "NetEmissionsTokenNetwork": [ + 7593 + ], + "SafeMathUpgradeable": [ + 749 + ] + }, + "id": 7594, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6178, + "literals": [ + "solidity", + "^", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "39:23:17" + }, + { + "id": 6179, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "63:33:17" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "id": 6180, + "nodeType": "ImportDirective", + "scope": 7594, + "sourceUnit": 750, + "src": "98:74:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "id": 6181, + "nodeType": "ImportDirective", + "scope": 7594, + "sourceUnit": 308, + "src": "173:81:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "id": 6182, + "nodeType": "ImportDirective", + "scope": 7594, + "sourceUnit": 1851, + "src": "255:82:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "id": 6183, + "nodeType": "ImportDirective", + "scope": 7594, + "sourceUnit": 2368, + "src": "338:75:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "id": 6184, + "nodeType": "ImportDirective", + "scope": 7594, + "sourceUnit": 816, + "src": "414:69:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 6185, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "522:13:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 6186, + "nodeType": "InheritanceSpecifier", + "src": "522:13:17" + }, + { + "baseName": { + "id": 6187, + "name": "ERC1155Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1850, + "src": "537:18:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155Upgradeable_$1850", + "typeString": "contract ERC1155Upgradeable" + } + }, + "id": 6188, + "nodeType": "InheritanceSpecifier", + "src": "537:18:17" + }, + { + "baseName": { + "id": 6189, + "name": "AccessControlUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 307, + "src": "557:24:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AccessControlUpgradeable_$307", + "typeString": "contract AccessControlUpgradeable" + } + }, + "id": 6190, + "nodeType": "InheritanceSpecifier", + "src": "557:24:17" + } + ], + "contractDependencies": [ + 307, + 382, + 394, + 815, + 1850, + 1865, + 2028, + 2317 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 7593, + "linearizedBaseContracts": [ + 7593, + 307, + 1850, + 1865, + 2028, + 382, + 394, + 2317, + 815 + ], + "name": "NetEmissionsTokenNetwork", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6193, + "libraryName": { + "id": 6191, + "name": "SafeMathUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 749, + "src": "595:19:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMathUpgradeable_$749", + "typeString": "library SafeMathUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "589:38:17", + "typeName": { + "id": 6192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "619:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 6196, + "libraryName": { + "id": 6194, + "name": "CountersUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2367, + "src": "638:19:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CountersUpgradeable_$2367", + "typeString": "library CountersUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "632:58:17", + "typeName": { + "id": 6195, + "name": "CountersUpgradeable.Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "662:27:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + } + }, + { + "constant": false, + "functionSelector": "dba851b0", + "id": 6198, + "mutability": "mutable", + "name": "limitedMode", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "696:23:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6197, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "696:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f851a440", + "id": 6200, + "mutability": "mutable", + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "813:20:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6199, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "813:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6202, + "mutability": "mutable", + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "925:24:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "925:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "18a50d7e", + "id": 6207, + "mutability": "constant", + "name": "REGISTERED_DEALER", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "1103:82:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6203, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1103:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f4445414c4552", + "id": 6205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1165:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3", + "typeString": "literal_string \"REGISTERED_DEALER\"" + }, + "value": "REGISTERED_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_f8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3", + "typeString": "literal_string \"REGISTERED_DEALER\"" + } + ], + "id": 6204, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1155:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1155:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "fcba7948", + "id": 6212, + "mutability": "constant", + "name": "REGISTERED_REC_DEALER", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "1224:90:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6208, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1224:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f5245435f4445414c4552", + "id": 6210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1290:23:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860", + "typeString": "literal_string \"REGISTERED_REC_DEALER\"" + }, + "value": "REGISTERED_REC_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860", + "typeString": "literal_string \"REGISTERED_REC_DEALER\"" + } + ], + "id": 6209, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1280:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "1ef68ef7", + "id": 6217, + "mutability": "constant", + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "1320:96:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6213, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1320:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f4f46465345545f4445414c4552", + "id": 6215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1389:26:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f", + "typeString": "literal_string \"REGISTERED_OFFSET_DEALER\"" + }, + "value": "REGISTERED_OFFSET_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f", + "typeString": "literal_string \"REGISTERED_OFFSET_DEALER\"" + } + ], + "id": 6214, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1379:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1379:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "76ce4755", + "id": 6222, + "mutability": "constant", + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "1422:104:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6218, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1422:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f454d495353494f4e535f41554449544f52", + "id": 6220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1495:30:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c", + "typeString": "literal_string \"REGISTERED_EMISSIONS_AUDITOR\"" + }, + "value": "REGISTERED_EMISSIONS_AUDITOR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c", + "typeString": "literal_string \"REGISTERED_EMISSIONS_AUDITOR\"" + } + ], + "id": 6219, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1485:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1485:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "78e5c592", + "id": 6227, + "mutability": "constant", + "name": "REGISTERED_CONSUMER", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "1553:86:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6223, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1553:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f434f4e53554d4552", + "id": 6225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1617:21:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a", + "typeString": "literal_string \"REGISTERED_CONSUMER\"" + }, + "value": "REGISTERED_CONSUMER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a", + "typeString": "literal_string \"REGISTERED_CONSUMER\"" + } + ], + "id": 6224, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1607:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1607:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "canonicalName": "NetEmissionsTokenNetwork.CarbonTokenDetails", + "id": 6250, + "members": [ + { + "constant": false, + "id": 6229, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2257:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2257:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6231, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2282:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6230, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2282:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6233, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2309:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6232, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2309:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6235, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2333:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2333:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6237, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2357:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2357:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6239, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2383:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2383:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6241, + "mutability": "mutable", + "name": "dateCreated", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2409:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2409:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6243, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2438:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2438:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6245, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2475:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6244, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2475:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6247, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2500:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6246, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2500:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6249, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "2525:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6248, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2525:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CarbonTokenDetails", + "nodeType": "StructDefinition", + "scope": 7593, + "src": "2221:329:17", + "visibility": "public" + }, + { + "constant": false, + "id": 6252, + "mutability": "mutable", + "name": "_numOfUniqueTokens", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "2617:54:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter" + }, + "typeName": { + "id": 6251, + "name": "CountersUpgradeable.Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "2617:27:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 6256, + "mutability": "mutable", + "name": "_tokenDetails", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "2721:60:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails)" + }, + "typeName": { + "id": 6255, + "keyType": { + "id": 6253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2729:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2721:38:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails)" + }, + "valueType": { + "id": 6254, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6250, + "src": "2740:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 6262, + "mutability": "mutable", + "name": "_retiredBalances", + "nodeType": "VariableDeclaration", + "scope": 7593, + "src": "2787:72:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "typeName": { + "id": 6261, + "keyType": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2795:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2787:47:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "valueType": { + "id": 6260, + "keyType": { + "id": 6258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2814:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2806:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 6259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2825:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "id": 6290, + "name": "TokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 6289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6264, + "indexed": false, + "mutability": "mutable", + "name": "availableBalance", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "2908:24:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2908:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6266, + "indexed": false, + "mutability": "mutable", + "name": "retiredBalance", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "2942:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2942:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6268, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "2974:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2974:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6270, + "indexed": false, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "2999:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6269, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2999:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6272, + "indexed": true, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3026:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6271, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3026:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6274, + "indexed": true, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3058:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3058:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6276, + "indexed": false, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3090:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3090:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6278, + "indexed": false, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3116:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3116:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6280, + "indexed": false, + "mutability": "mutable", + "name": "dateCreated", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3142:19:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6282, + "indexed": false, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3171:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3171:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6284, + "indexed": false, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3208:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6283, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3208:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6286, + "indexed": false, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3233:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6285, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3233:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6288, + "indexed": false, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 6290, + "src": "3258:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6287, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3258:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2898:384:17" + }, + "src": "2880:403:17" + }, + { + "anonymous": false, + "id": 6298, + "name": "TokenRetired", + "nodeType": "EventDefinition", + "parameters": { + "id": 6297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6292, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3316:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3316:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6294, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3349:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6293, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3349:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6296, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 6298, + "src": "3374:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3374:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3306:88:17" + }, + "src": "3288:107:17" + }, + { + "anonymous": false, + "id": 6302, + "name": "RegisteredConsumer", + "nodeType": "EventDefinition", + "parameters": { + "id": 6301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6300, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 6302, + "src": "3425:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3425:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3424:25:17" + }, + "src": "3400:50:17" + }, + { + "anonymous": false, + "id": 6306, + "name": "UnregisteredConsumer", + "nodeType": "EventDefinition", + "parameters": { + "id": 6305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6304, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 6306, + "src": "3482:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3482:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3481:25:17" + }, + "src": "3455:52:17" + }, + { + "anonymous": false, + "id": 6310, + "name": "RegisteredDealer", + "nodeType": "EventDefinition", + "parameters": { + "id": 6309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6308, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "3535:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3535:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3534:25:17" + }, + "src": "3512:48:17" + }, + { + "anonymous": false, + "id": 6314, + "name": "UnregisteredDealer", + "nodeType": "EventDefinition", + "parameters": { + "id": 6313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6312, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 6314, + "src": "3590:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3590:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3589:25:17" + }, + "src": "3565:50:17" + }, + { + "body": { + "id": 6370, + "nodeType": "Block", + "src": "3729:538:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 6322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3755:2:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 6321, + "name": "__ERC1155_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 881, + "src": "3740:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 6323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3740:18:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6324, + "nodeType": "ExpressionStatement", + "src": "3740:18:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6326, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "3830:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6327, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6207, + "src": "3851:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6325, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "3816:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3816:53:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6329, + "nodeType": "ExpressionStatement", + "src": "3816:53:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6331, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "3915:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6332, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "3935:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6330, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "3904:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 6333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3904:38:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6334, + "nodeType": "ExpressionStatement", + "src": "3904:38:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6336, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6207, + "src": "3963:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6337, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "3982:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6335, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "3952:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 6338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3952:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6339, + "nodeType": "ExpressionStatement", + "src": "3952:37:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6341, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "4010:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6342, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "4033:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6340, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "3999:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 6343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3999:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6344, + "nodeType": "ExpressionStatement", + "src": "3999:41:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6346, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "4061:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6347, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "4087:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6345, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4050:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 6348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4050:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6349, + "nodeType": "ExpressionStatement", + "src": "4050:44:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6351, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "4115:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6352, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "4145:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6350, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4104:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 6353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4104:48:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6354, + "nodeType": "ExpressionStatement", + "src": "4104:48:17" + }, + { + "expression": { + "id": 6357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6355, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "4162:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6356, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6316, + "src": "4170:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4162:14:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6358, + "nodeType": "ExpressionStatement", + "src": "4162:14:17" + }, + { + "expression": { + "id": 6364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6359, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6202, + "src": "4209:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "30", + "id": 6362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4228:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4220:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4220:7:17", + "typeDescriptions": {} + } + }, + "id": 6363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4220:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4209:21:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6365, + "nodeType": "ExpressionStatement", + "src": "4209:21:17" + }, + { + "expression": { + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6366, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "4241:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 6367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4255:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4241:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6369, + "nodeType": "ExpressionStatement", + "src": "4241:19:17" + } + ] + }, + "functionSelector": "c4d66de8", + "id": 6371, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 6319, + "modifierName": { + "id": 6318, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "3717:11:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3717:11:17" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6316, + "mutability": "mutable", + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 6371, + "src": "3694:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3693:16:17" + }, + "returnParameters": { + "id": 6320, + "nodeType": "ParameterList", + "parameters": [], + "src": "3729:0:17" + }, + "scope": 7593, + "src": "3674:593:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6417, + "nodeType": "Block", + "src": "4301:482:17", + "statements": [ + { + "assignments": [ + 6374 + ], + "declarations": [ + { + "constant": false, + "id": 6374, + "mutability": "mutable", + "name": "isConsumer", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "4311:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6373, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4311:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6380, + "initialValue": { + "arguments": [ + { + "id": 6376, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "4337:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6377, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4358:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4358:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6375, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4329:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4329:40:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4311:58:17" + }, + { + "assignments": [ + 6382 + ], + "declarations": [ + { + "constant": false, + "id": 6382, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "4379:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6381, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4379:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6388, + "initialValue": { + "arguments": [ + { + "id": 6384, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "4406:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6385, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4429:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4429:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6383, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4398:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4398:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4379:61:17" + }, + { + "assignments": [ + 6390 + ], + "declarations": [ + { + "constant": false, + "id": 6390, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "4450:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6389, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4450:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6396, + "initialValue": { + "arguments": [ + { + "id": 6392, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "4477:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4503:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4503:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6391, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4469:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4469:45:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4450:64:17" + }, + { + "assignments": [ + 6398 + ], + "declarations": [ + { + "constant": false, + "id": 6398, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 6417, + "src": "4524:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6397, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4524:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6404, + "initialValue": { + "arguments": [ + { + "id": 6400, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "4550:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6401, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4580:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4580:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6399, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4542:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4542:49:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4524:67:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6406, + "name": "isConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6374, + "src": "4623:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 6407, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6382, + "src": "4637:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4623:25:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 6409, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6390, + "src": "4652:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4623:40:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 6411, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6398, + "src": "4667:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4623:54:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e646572206e6f74206120636f6e73756d6572206f722061206465616c6572", + "id": 6413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4691:63:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047", + "typeString": "literal_string \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"" + }, + "value": "CLM8::consumerOrDealer: msg.sender not a consumer or a dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047", + "typeString": "literal_string \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"" + } + ], + "id": 6405, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4602:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4602:162:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6415, + "nodeType": "ExpressionStatement", + "src": "4602:162:17" + }, + { + "id": 6416, + "nodeType": "PlaceholderStatement", + "src": "4775:1:17" + } + ] + }, + "id": 6418, + "name": "consumerOrDealer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6372, + "nodeType": "ParameterList", + "parameters": [], + "src": "4298:2:17" + }, + "src": "4273:510:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6454, + "nodeType": "Block", + "src": "4811:379:17", + "statements": [ + { + "assignments": [ + 6421 + ], + "declarations": [ + { + "constant": false, + "id": 6421, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 6454, + "src": "4821:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6420, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4821:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6427, + "initialValue": { + "arguments": [ + { + "id": 6423, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "4848:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6424, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4871:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4871:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6422, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4840:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4840:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4821:61:17" + }, + { + "assignments": [ + 6429 + ], + "declarations": [ + { + "constant": false, + "id": 6429, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 6454, + "src": "4892:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6428, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4892:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6435, + "initialValue": { + "arguments": [ + { + "id": 6431, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "4919:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6432, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4945:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4945:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6430, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4911:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4911:45:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4892:64:17" + }, + { + "assignments": [ + 6437 + ], + "declarations": [ + { + "constant": false, + "id": 6437, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 6454, + "src": "4966:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6436, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4966:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 6443, + "initialValue": { + "arguments": [ + { + "id": 6439, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "4992:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6440, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5022:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5022:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6438, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4984:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4984:49:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4966:67:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6445, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6421, + "src": "5065:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 6446, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6429, + "src": "5080:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5065:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 6448, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "5095:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5065:40:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f742061206465616c6572", + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5119:43:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f", + "typeString": "literal_string \"CLM8::onlyDealer: msg.sender not a dealer\"" + }, + "value": "CLM8::onlyDealer: msg.sender not a dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f", + "typeString": "literal_string \"CLM8::onlyDealer: msg.sender not a dealer\"" + } + ], + "id": 6444, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5044:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5044:128:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6452, + "nodeType": "ExpressionStatement", + "src": "5044:128:17" + }, + { + "id": 6453, + "nodeType": "PlaceholderStatement", + "src": "5182:1:17" + } + ] + }, + "id": 6455, + "name": "onlyDealer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6419, + "nodeType": "ParameterList", + "parameters": [], + "src": "4808:2:17" + }, + "src": "4789:401:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6467, + "nodeType": "Block", + "src": "5217:155:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6459, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "5256:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6460, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5276:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5276:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6458, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5248:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5248:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f74207468652061646d696e", + "id": 6463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5301:43:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2", + "typeString": "literal_string \"CLM8::onlyAdmin: msg.sender not the admin\"" + }, + "value": "CLM8::onlyAdmin: msg.sender not the admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2", + "typeString": "literal_string \"CLM8::onlyAdmin: msg.sender not the admin\"" + } + ], + "id": 6457, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5227:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5227:127:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6465, + "nodeType": "ExpressionStatement", + "src": "5227:127:17" + }, + { + "id": 6466, + "nodeType": "PlaceholderStatement", + "src": "5364:1:17" + } + ] + }, + "id": 6468, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6456, + "nodeType": "ParameterList", + "parameters": [], + "src": "5214:2:17" + }, + "src": "5196:176:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6486, + "nodeType": "Block", + "src": "5507:118:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6476, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "5521:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "5521:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 6478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5521:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 6479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6471, + "src": "5553:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5521:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6483, + "nodeType": "IfStatement", + "src": "5517:56:17", + "trueBody": { + "expression": { + "hexValue": "74727565", + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5569:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 6475, + "id": 6482, + "nodeType": "Return", + "src": "5562:11:17" + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 6484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5590:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 6475, + "id": 6485, + "nodeType": "Return", + "src": "5583:12:17" + } + ] + }, + "documentation": { + "id": 6469, + "nodeType": "StructuredDocumentation", + "src": "5378:58:17", + "text": " @dev returns true if the tokenId exists" + }, + "id": 6487, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenExists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6471, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 6487, + "src": "5462:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5462:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5461:17:17" + }, + "returnParameters": { + "id": 6475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6474, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6487, + "src": "5501:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6473, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5501:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5500:6:17" + }, + "scope": 7593, + "src": "5441:184:17", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6510, + "nodeType": "Block", + "src": "5775:142:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6495, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "5790:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5804:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5790:15:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 6498, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5789:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6499, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "5811:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "33", + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5826:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "5811:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 6502, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5810:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5789:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6507, + "nodeType": "IfStatement", + "src": "5785:81:17", + "trueBody": { + "id": 6506, + "nodeType": "Block", + "src": "5830:36:17", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5851:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 6494, + "id": 6505, + "nodeType": "Return", + "src": "5844:11:17" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 6508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5882:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 6494, + "id": 6509, + "nodeType": "Return", + "src": "5875:12:17" + } + ] + }, + "documentation": { + "id": 6488, + "nodeType": "StructuredDocumentation", + "src": "5631:64:17", + "text": " @dev returns true if the tokenTypeId is valid" + }, + "id": 6511, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenTypeIdIsValid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6490, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6511, + "src": "5728:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5728:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5727:19:17" + }, + "returnParameters": { + "id": 6494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6493, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6511, + "src": "5769:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6492, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5769:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5768:6:17" + }, + "scope": 7593, + "src": "5700:217:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6521, + "nodeType": "Block", + "src": "6045:52:17", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6517, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "6062:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "6062:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6062:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6516, + "id": 6520, + "nodeType": "Return", + "src": "6055:35:17" + } + ] + }, + "documentation": { + "id": 6512, + "nodeType": "StructuredDocumentation", + "src": "5923:55:17", + "text": " @dev returns number of unique tokens" + }, + "functionSelector": "5ddb368f", + "id": 6522, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNumOfUniqueTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6513, + "nodeType": "ParameterList", + "parameters": [], + "src": "6012:2:17" + }, + "returnParameters": { + "id": 6516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6515, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6522, + "src": "6036:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6036:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6035:9:17" + }, + "scope": 7593, + "src": "5983:114:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1685 + ], + "body": { + "id": 6612, + "nodeType": "Block", + "src": "6450:1267:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6544, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6525, + "src": "6487:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6545, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6527, + "src": "6497:4:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6546, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6529, + "src": "6503:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6547, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6532, + "src": "6507:3:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 6548, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6535, + "src": "6512:7:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 6549, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6537, + "src": "6521:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 6541, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "6460:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_beforeTokenTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "6460:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6460:66:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6551, + "nodeType": "ExpressionStatement", + "src": "6460:66:17" + }, + { + "body": { + "id": 6610, + "nodeType": "Block", + "src": "6575:1136:17", + "statements": [ + { + "assignments": [ + 6564 + ], + "declarations": [ + { + "constant": false, + "id": 6564, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 6610, + "src": "6590:32:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + }, + "typeName": { + "id": 6563, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6250, + "src": "6590:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 6570, + "initialValue": { + "baseExpression": { + "id": 6565, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "6625:13:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref)" + } + }, + "id": 6569, + "indexExpression": { + "baseExpression": { + "id": 6566, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6532, + "src": "6639:3:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 6568, + "indexExpression": { + "id": 6567, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6553, + "src": "6643:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6639:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6625:21:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6590:56:17" + }, + { + "condition": { + "id": 6571, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "6724:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6609, + "nodeType": "IfStatement", + "src": "6720:981:17", + "trueBody": { + "id": 6608, + "nodeType": "Block", + "src": "6737:964:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6572, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6529, + "src": "6815:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6829:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6821:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6821:7:17", + "typeDescriptions": {} + } + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6821:10:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6815:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6580, + "nodeType": "IfStatement", + "src": "6811:71:17", + "trueBody": { + "id": 6579, + "nodeType": "Block", + "src": "6833:49:17", + "statements": [ + { + "id": 6578, + "nodeType": "Continue", + "src": "6855:8:17" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6581, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6564, + "src": "7138:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6231, + "src": "7138:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "33", + "id": 6583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7159:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "7138:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6606, + "nodeType": "Block", + "src": "7428:259:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6600, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "7491:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6601, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6525, + "src": "7521:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6599, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "7483:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7483:47:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d69746564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e206973737565206175646974656420656d697373696f6e73", + "id": 6603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7556:90:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"" + }, + "value": "CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"" + } + ], + "id": 6598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7450:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7450:218:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6605, + "nodeType": "ExpressionStatement", + "src": "7450:218:17" + } + ] + }, + "id": 6607, + "nodeType": "IfStatement", + "src": "7134:553:17", + "trueBody": { + "id": 6597, + "nodeType": "Block", + "src": "7162:260:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6586, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6525, + "src": "7217:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6587, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6202, + "src": "7229:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7217:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 6590, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "7249:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6591, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6525, + "src": "7269:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6589, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "7241:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7241:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7217:61:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d69746564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e7366657220746f6b656e73", + "id": 6594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7304:77:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"" + }, + "value": "CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"" + } + ], + "id": 6585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7184:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7184:219:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6596, + "nodeType": "ExpressionStatement", + "src": "7184:219:17" + } + ] + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6556, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6553, + "src": "6554:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 6557, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6532, + "src": "6558:3:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 6558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6558:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6554:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6611, + "initializationExpression": { + "assignments": [ + 6553 + ], + "declarations": [ + { + "constant": false, + "id": 6553, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 6611, + "src": "6542:6:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6542:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6555, + "initialValue": { + "hexValue": "30", + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6551:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6542:10:17" + }, + "loopExpression": { + "expression": { + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6570:3:17", + "subExpression": { + "id": 6560, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6553, + "src": "6570:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6562, + "nodeType": "ExpressionStatement", + "src": "6570:3:17" + }, + "nodeType": "ForStatement", + "src": "6537:1174:17" + } + ] + }, + "documentation": { + "id": 6523, + "nodeType": "StructuredDocumentation", + "src": "6103:93:17", + "text": " @dev hook to prevent transfers from non-admin account if limitedMode is on" + }, + "id": 6613, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 6539, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6437:8:17" + }, + "parameters": { + "id": 6538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6525, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6240:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6240:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6527, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6266:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6266:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6529, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6288:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6288:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6532, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6308:20:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6308:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6531, + "nodeType": "ArrayTypeName", + "src": "6308:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6535, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6338:24:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6338:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6534, + "nodeType": "ArrayTypeName", + "src": "6338:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6537, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "6372:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6536, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6372:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6230:165:17" + }, + "returnParameters": { + "id": 6540, + "nodeType": "ParameterList", + "parameters": [], + "src": "6450:0:17" + }, + "scope": 7593, + "src": "6201:1516:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 6651, + "nodeType": "Block", + "src": "8374:277:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6638, + "name": "issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6616, + "src": "8411:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 6639, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8431:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8431:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 6641, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6618, + "src": "8455:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 6642, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6620, + "src": "8480:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6643, + "name": "fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6622, + "src": "8502:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6644, + "name": "thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6624, + "src": "8524:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6645, + "name": "automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6626, + "src": "8546:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6646, + "name": "metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6628, + "src": "8579:8:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6647, + "name": "manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6630, + "src": "8601:8:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6648, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6632, + "src": "8623:11:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6637, + "name": "_issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6990, + "src": "8391:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint8,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 6649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8391:253:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6636, + "id": 6650, + "nodeType": "Return", + "src": "8384:260:17" + } + ] + }, + "documentation": { + "id": 6614, + "nodeType": "StructuredDocumentation", + "src": "7723:342:17", + "text": " @dev External function to mint an amount of a token\n Only authorized dealer of associated token type can call this function\n @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller\n should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4)" + }, + "functionSelector": "fd0c4a9a", + "id": 6652, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 6635, + "modifierName": { + "id": 6634, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6455, + "src": "8363:10:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8363:10:17" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6616, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8094:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8094:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6618, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8118:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6617, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8118:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6620, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8145:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8145:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6622, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8171:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6624, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8197:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8197:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6626, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8223:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8223:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6628, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8260:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6627, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8260:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6630, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8292:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6629, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8292:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6632, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 6652, + "src": "8324:25:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6631, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8324:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8084:271:17" + }, + "returnParameters": { + "id": 6636, + "nodeType": "ParameterList", + "parameters": [], + "src": "8374:0:17" + }, + "scope": 7593, + "src": "8070:581:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6704, + "nodeType": "Block", + "src": "9210:452:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6677, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9243:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9243:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6679, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6202, + "src": "9257:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9243:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 6681, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9242:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 6683, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "9278:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 6684, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9298:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9298:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6682, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "9270:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9242:67:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a69737375654f6e426568616c663a2063616c6c206d75737420636f6d652066726f6d2044414f206f722061646d696e", + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9323:55:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49", + "typeString": "literal_string \"CLM8::issueOnBehalf: call must come from DAO or admin\"" + }, + "value": "CLM8::issueOnBehalf: call must come from DAO or admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49", + "typeString": "literal_string \"CLM8::issueOnBehalf: call must come from DAO or admin\"" + } + ], + "id": 6676, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9221:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9221:167:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6690, + "nodeType": "ExpressionStatement", + "src": "9221:167:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6692, + "name": "issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6655, + "src": "9426:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6693, + "name": "issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6657, + "src": "9446:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 6694, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6659, + "src": "9466:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 6695, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6661, + "src": "9491:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6696, + "name": "fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6663, + "src": "9513:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6697, + "name": "thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6665, + "src": "9535:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6698, + "name": "automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6667, + "src": "9557:19:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6699, + "name": "metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6669, + "src": "9590:8:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6700, + "name": "manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6671, + "src": "9612:8:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 6701, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6673, + "src": "9634:11:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 6691, + "name": "_issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6990, + "src": "9406:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint8,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 6702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9406:249:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6675, + "id": 6703, + "nodeType": "Return", + "src": "9399:256:17" + } + ] + }, + "documentation": { + "id": 6653, + "nodeType": "StructuredDocumentation", + "src": "8657:223:17", + "text": " @dev Issue function for DAO (on limited mode) or admin to manually pass issuer\n Must be called from Timelock contract through a successful proposal\n or by admin if limited mode is set to false" + }, + "functionSelector": "f000be98", + "id": 6705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issueOnBehalf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6655, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "8917:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8917:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6657, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "8941:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8941:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6659, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "8965:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6658, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8965:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6661, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "8992:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8992:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6663, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9018:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9018:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6665, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9044:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9044:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6667, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9070:27:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9070:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6669, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9107:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9107:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6671, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9139:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6670, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9139:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6673, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 6705, + "src": "9171:25:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6672, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9171:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8907:295:17" + }, + "returnParameters": { + "id": 6675, + "nodeType": "ParameterList", + "parameters": [], + "src": "9210:0:17" + }, + "scope": 7593, + "src": "8885:777:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 6989, + "nodeType": "Block", + "src": "9998:3367:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6730, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "10049:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 6729, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "10030:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 6731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10030:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e76616c6964", + "id": 6732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10076:38:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba", + "typeString": "literal_string \"CLM8::_issue: tokenTypeId is invalid\"" + }, + "value": "CLM8::_issue: tokenTypeId is invalid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba", + "typeString": "literal_string \"CLM8::_issue: tokenTypeId is invalid\"" + } + ], + "id": 6728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10009:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10009:115:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6734, + "nodeType": "ExpressionStatement", + "src": "10009:115:17" + }, + { + "condition": { + "id": 6735, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "10139:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6827, + "nodeType": "Block", + "src": "11035:698:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6788, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "11053:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11069:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11053:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6800, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "11273:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11289:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11273:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6812, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "11499:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 6813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11515:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11499:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6824, + "nodeType": "IfStatement", + "src": "11495:228:17", + "trueBody": { + "id": 6823, + "nodeType": "Block", + "src": "11518:205:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6817, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "11573:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6818, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "11603:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6816, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11565:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11565:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f742061207265676973746572656420656d697373696f6e732061756469746f72", + "id": 6820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11633:57:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered emissions auditor\"" + }, + "value": "CLM8::_issue: issuer not a registered emissions auditor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered emissions auditor\"" + } + ], + "id": 6815, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11536:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11536:172:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6822, + "nodeType": "ExpressionStatement", + "src": "11536:172:17" + } + ] + } + }, + "id": 6825, + "nodeType": "IfStatement", + "src": "11269:454:17", + "trueBody": { + "id": 6811, + "nodeType": "Block", + "src": "11292:197:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6805, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "11347:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6806, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "11373:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6804, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11339:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11339:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f7420612072656769737465726564206f6666736574206465616c6572", + "id": 6808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11403:53:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered offset dealer\"" + }, + "value": "CLM8::_issue: issuer not a registered offset dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered offset dealer\"" + } + ], + "id": 6803, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11310:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11310:164:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6810, + "nodeType": "ExpressionStatement", + "src": "11310:164:17" + } + ] + } + }, + "id": 6826, + "nodeType": "IfStatement", + "src": "11049:674:17", + "trueBody": { + "id": 6799, + "nodeType": "Block", + "src": "11072:191:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6793, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "11127:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6794, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "11150:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6792, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11119:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11119:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f742061207265676973746572656420524543206465616c6572", + "id": 6796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11180:50:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered REC dealer\"" + }, + "value": "CLM8::_issue: issuer not a registered REC dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered REC dealer\"" + } + ], + "id": 6791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11090:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11090:158:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6798, + "nodeType": "ExpressionStatement", + "src": "11090:158:17" + } + ] + } + } + ] + }, + "id": 6828, + "nodeType": "IfStatement", + "src": "10135:1598:17", + "trueBody": { + "id": 6787, + "nodeType": "Block", + "src": "10152:877:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6736, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "10170:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10186:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10170:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6739, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "10191:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 6740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10207:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10191:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10170:38:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6773, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "10786:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 6774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10802:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "10786:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6785, + "nodeType": "IfStatement", + "src": "10782:237:17", + "trueBody": { + "id": 6784, + "nodeType": "Block", + "src": "10805:214:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6778, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "10860:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6779, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "10890:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6777, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10852:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10852:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f742061207265676973746572656420656d697373696f6e732061756469746f72", + "id": 6781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10920:66:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796", + "typeString": "literal_string \"CLM8::_issue(limited): issuer not a registered emissions auditor\"" + }, + "value": "CLM8::_issue(limited): issuer not a registered emissions auditor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796", + "typeString": "literal_string \"CLM8::_issue(limited): issuer not a registered emissions auditor\"" + } + ], + "id": 6776, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10823:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10823:181:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6783, + "nodeType": "ExpressionStatement", + "src": "10823:181:17" + } + ] + } + }, + "id": 6786, + "nodeType": "IfStatement", + "src": "10166:853:17", + "trueBody": { + "id": 6772, + "nodeType": "Block", + "src": "10211:565:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 6744, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10258:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10258:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6746, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6202, + "src": "10272:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10258:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646572206e6f742074696d656c6f636b", + "id": 6748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10302:48:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633", + "typeString": "literal_string \"CLM8::_issue(limited): msg.sender not timelock\"" + }, + "value": "CLM8::_issue(limited): msg.sender not timelock" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633", + "typeString": "literal_string \"CLM8::_issue(limited): msg.sender not timelock\"" + } + ], + "id": 6743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10229:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10229:139:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6750, + "nodeType": "ExpressionStatement", + "src": "10229:139:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 6753, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "10423:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6754, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "10443:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6752, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10415:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10415:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f742061646d696e", + "id": 6756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10473:41:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb", + "typeString": "literal_string \"CLM8::_issue(limited): issuee not admin\"" + }, + "value": "CLM8::_issue(limited): issuee not admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb", + "typeString": "literal_string \"CLM8::_issue(limited): issuee not admin\"" + } + ], + "id": 6751, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10386:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10386:146:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6758, + "nodeType": "ExpressionStatement", + "src": "10386:146:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6761, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "10587:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6762, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "10610:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6760, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10579:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10579:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 6765, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "10630:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 6766, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "10656:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6764, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10622:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 6767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10622:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10579:85:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a2070726f706f736572206e6f7420612072656769737465726564206465616c6572", + "id": 6769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10686:57:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726", + "typeString": "literal_string \"CLM8::_issue(limited): proposer not a registered dealer\"" + }, + "value": "CLM8::_issue(limited): proposer not a registered dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726", + "typeString": "literal_string \"CLM8::_issue(limited): proposer not a registered dealer\"" + } + ], + "id": 6759, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10550:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10550:211:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6771, + "nodeType": "ExpressionStatement", + "src": "10550:211:17" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6829, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "11781:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6831, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "increment", + "nodeType": "MemberAccess", + "referencedDeclaration": 2350, + "src": "11781:28:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$2327_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer)" + } + }, + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11781:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6833, + "nodeType": "ExpressionStatement", + "src": "11781:30:17" + }, + { + "assignments": [ + 6835 + ], + "declarations": [ + { + "constant": false, + "id": 6835, + "mutability": "mutable", + "name": "tokenInfo", + "nodeType": "VariableDeclaration", + "scope": 6989, + "src": "11854:36:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + }, + "typeName": { + "id": 6834, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6250, + "src": "11854:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 6841, + "initialValue": { + "baseExpression": { + "id": 6836, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "11893:13:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref)" + } + }, + "id": 6840, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6837, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "11907:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "11907:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 6839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11907:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11893:43:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11854:82:17" + }, + { + "expression": { + "id": 6848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6842, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "11947:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6844, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "11947:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6845, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "11967:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6846, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "11967:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 6847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11967:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11947:48:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6849, + "nodeType": "ExpressionStatement", + "src": "11947:48:17" + }, + { + "expression": { + "id": 6854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6850, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12005:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6852, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6231, + "src": "12005:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6853, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "12029:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12005:36:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 6855, + "nodeType": "ExpressionStatement", + "src": "12005:36:17" + }, + { + "expression": { + "id": 6860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6856, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12051:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "12051:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6859, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "12070:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12051:26:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6861, + "nodeType": "ExpressionStatement", + "src": "12051:26:17" + }, + { + "expression": { + "id": 6866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6862, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12087:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6864, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6233, + "src": "12087:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6865, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "12106:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12087:26:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6867, + "nodeType": "ExpressionStatement", + "src": "12087:26:17" + }, + { + "expression": { + "id": 6872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6868, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12123:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6870, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "fromDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6237, + "src": "12123:18:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6871, + "name": "_fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6715, + "src": "12144:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12123:30:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6873, + "nodeType": "ExpressionStatement", + "src": "12123:30:17" + }, + { + "expression": { + "id": 6878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6874, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12163:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "thruDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6239, + "src": "12163:18:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6877, + "name": "_thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6717, + "src": "12184:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12163:30:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6879, + "nodeType": "ExpressionStatement", + "src": "12163:30:17" + }, + { + "expression": { + "id": 6884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6880, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12203:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "automaticRetireDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6243, + "src": "12203:29:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6883, + "name": "_automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6719, + "src": "12235:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12203:52:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6885, + "nodeType": "ExpressionStatement", + "src": "12203:52:17" + }, + { + "expression": { + "id": 6891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6886, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12265:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6888, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "dateCreated", + "nodeType": "MemberAccess", + "referencedDeclaration": 6241, + "src": "12265:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 6889, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "12289:5:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 6890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "12289:15:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12265:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6892, + "nodeType": "ExpressionStatement", + "src": "12265:39:17" + }, + { + "expression": { + "id": 6897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6893, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12314:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6895, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "metadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 6245, + "src": "12314:18:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6896, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6721, + "src": "12335:9:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12314:30:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 6898, + "nodeType": "ExpressionStatement", + "src": "12314:30:17" + }, + { + "expression": { + "id": 6903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6899, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12354:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "manifest", + "nodeType": "MemberAccess", + "referencedDeclaration": 6247, + "src": "12354:18:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6902, + "name": "_manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6723, + "src": "12375:9:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12354:30:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 6904, + "nodeType": "ExpressionStatement", + "src": "12354:30:17" + }, + { + "expression": { + "id": 6909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 6905, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12394:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 6249, + "src": "12394:21:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6908, + "name": "_description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6725, + "src": "12418:12:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12394:36:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 6910, + "nodeType": "ExpressionStatement", + "src": "12394:36:17" + }, + { + "expression": { + "arguments": [ + { + "id": 6914, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "12453:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6915, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "12462:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 6916, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "12462:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 6917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12462:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6918, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "12492:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12503:2:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 6911, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "12441:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 6913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "12441:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 6920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12441:65:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6921, + "nodeType": "ExpressionStatement", + "src": "12441:65:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6922, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "12565:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 6923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12581:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "12565:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6955, + "nodeType": "IfStatement", + "src": "12561:245:17", + "trueBody": { + "id": 6954, + "nodeType": "Block", + "src": "12584:222:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 6928, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12610:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "12610:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 6930, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12628:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6931, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "12628:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6932, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "12647:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6925, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "12598:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "12598:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12598:59:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6934, + "nodeType": "ExpressionStatement", + "src": "12598:59:17" + }, + { + "expression": { + "id": 6952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 6935, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "12671:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 6940, + "indexExpression": { + "expression": { + "id": 6936, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12688:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "12688:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12671:35:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6941, + "indexExpression": { + "expression": { + "id": 6938, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12707:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6939, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "12707:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12671:53:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 6950, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "12785:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 6942, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "12727:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 6945, + "indexExpression": { + "expression": { + "id": 6943, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12744:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6944, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "12744:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12727:35:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6948, + "indexExpression": { + "expression": { + "id": 6946, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12763:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6947, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "12763:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12727:53:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "12727:57:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12727:68:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12671:124:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6953, + "nodeType": "ExpressionStatement", + "src": "12671:124:17" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 6957, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "12905:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 6958, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "12928:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 6961, + "indexExpression": { + "expression": { + "id": 6959, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12945:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6960, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "12945:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12928:35:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6964, + "indexExpression": { + "expression": { + "id": 6962, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12964:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6963, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "12964:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12928:53:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6965, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "12995:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6229, + "src": "12995:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6967, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13026:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6231, + "src": "13026:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 6969, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13061:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6970, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6233, + "src": "13061:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 6971, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13091:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 6235, + "src": "13091:16:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 6973, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13121:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6237, + "src": "13121:18:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6975, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13153:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "thruDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6239, + "src": "13153:18:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6977, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13185:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6978, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "automaticRetireDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 6243, + "src": "13185:29:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6979, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13228:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6980, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "dateCreated", + "nodeType": "MemberAccess", + "referencedDeclaration": 6241, + "src": "13228:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6981, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13263:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6982, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "metadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 6245, + "src": "13263:18:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 6983, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13295:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "manifest", + "nodeType": "MemberAccess", + "referencedDeclaration": 6247, + "src": "13295:18:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 6985, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6835, + "src": "13327:9:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 6986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 6249, + "src": "13327:21:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 6956, + "name": "TokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6290, + "src": "12879:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint8_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,uint8,address,address,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 6987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12879:479:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6988, + "nodeType": "EmitStatement", + "src": "12874:484:17" + } + ] + }, + "id": 6990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6707, + "mutability": "mutable", + "name": "_issuee", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9693:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9693:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6709, + "mutability": "mutable", + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9718:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9718:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6711, + "mutability": "mutable", + "name": "_tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9743:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6710, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9743:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6713, + "mutability": "mutable", + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9771:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9771:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6715, + "mutability": "mutable", + "name": "_fromDate", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9798:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9798:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6717, + "mutability": "mutable", + "name": "_thruDate", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9825:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9825:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6719, + "mutability": "mutable", + "name": "_automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9852:28:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9852:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6721, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9890:23:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6720, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9890:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6723, + "mutability": "mutable", + "name": "_manifest", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9923:23:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6722, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9923:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6725, + "mutability": "mutable", + "name": "_description", + "nodeType": "VariableDeclaration", + "scope": 6990, + "src": "9956:26:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6724, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9956:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "9683:305:17" + }, + "returnParameters": { + "id": 6727, + "nodeType": "ParameterList", + "parameters": [], + "src": "9998:0:17" + }, + "scope": 7593, + "src": "9668:3697:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7024, + "nodeType": "Block", + "src": "13650:217:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7004, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "13680:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7003, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6487, + "src": "13668:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 7005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13668:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f74206578697374", + "id": 7006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13690:36:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22", + "typeString": "literal_string \"CLM8::mint: tokenId does not exist\"" + }, + "value": "CLM8::mint: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22", + "typeString": "literal_string \"CLM8::mint: tokenId does not exist\"" + } + ], + "id": 7002, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13660:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13660:67:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7008, + "nodeType": "ExpressionStatement", + "src": "13660:67:17" + }, + { + "expression": { + "arguments": [ + { + "id": 7011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13745:12:17", + "subExpression": { + "id": 7010, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "13746:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b656e7320696e206c696d69746564206d6f6465", + "id": 7012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13759:52:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f", + "typeString": "literal_string \"CLM8::mint: cannot mint new tokens in limited mode\"" + }, + "value": "CLM8::mint: cannot mint new tokens in limited mode" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f", + "typeString": "literal_string \"CLM8::mint: cannot mint new tokens in limited mode\"" + } + ], + "id": 7009, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13737:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13737:75:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7014, + "nodeType": "ExpressionStatement", + "src": "13737:75:17" + }, + { + "expression": { + "arguments": [ + { + "id": 7018, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6993, + "src": "13834:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7019, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "13838:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7020, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6997, + "src": "13847:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 7021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13857:2:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 7015, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "13822:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "13822:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 7022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13822:38:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7023, + "nodeType": "ExpressionStatement", + "src": "13822:38:17" + } + ] + }, + "documentation": { + "id": 6991, + "nodeType": "StructuredDocumentation", + "src": "13371:174:17", + "text": " @dev mints more of an existing token\n @param to reciepient of token\n @param tokenId token to mint more of\n @param quantity amount to mint" + }, + "functionSelector": "156e29f6", + "id": 7025, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7000, + "modifierName": { + "id": 6999, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6468, + "src": "13636:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13636:9:17" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6993, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 7025, + "src": "13564:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13564:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6995, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7025, + "src": "13576:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13576:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6997, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 7025, + "src": "13593:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13593:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13563:47:17" + }, + "returnParameters": { + "id": 7001, + "nodeType": "ParameterList", + "parameters": [], + "src": "13650:0:17" + }, + "scope": 7593, + "src": "13550:317:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7064, + "nodeType": "Block", + "src": "14104:387:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7035, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7028, + "src": "14134:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7034, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6487, + "src": "14122:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 7036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14122:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f6573206e6f74206578697374", + "id": 7037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14144:44:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961", + "typeString": "literal_string \"CLM8::getTokenType: tokenId does not exist\"" + }, + "value": "CLM8::getTokenType: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961", + "typeString": "literal_string \"CLM8::getTokenType: tokenId does not exist\"" + } + ], + "id": 7033, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14114:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14114:75:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7039, + "nodeType": "ExpressionStatement", + "src": "14114:75:17" + }, + { + "assignments": [ + 7041 + ], + "declarations": [ + { + "constant": false, + "id": 7041, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7064, + "src": "14199:32:17", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + }, + "typeName": { + "id": 7040, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6250, + "src": "14199:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 7045, + "initialValue": { + "baseExpression": { + "id": 7042, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "14234:13:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref)" + } + }, + "id": 7044, + "indexExpression": { + "id": 7043, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7028, + "src": "14248:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14234:22:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14199:57:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 7046, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7041, + "src": "14271:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 7047, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6231, + "src": "14271:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 7048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14292:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14271:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 7053, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7041, + "src": "14367:5:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage pointer" + } + }, + "id": 7054, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 6231, + "src": "14367:17:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 7055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14388:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14367:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7060, + "nodeType": "IfStatement", + "src": "14363:85:17", + "trueBody": { + "id": 7059, + "nodeType": "Block", + "src": "14391:57:17", + "statements": [ + { + "expression": { + "hexValue": "436172626f6e20456d697373696f6e73204f6666736574", + "id": 7057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14412:25:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4341f867864cabd004f45b09af8d0716f81939d42b6488ac4d53c7be4375f2c8", + "typeString": "literal_string \"Carbon Emissions Offset\"" + }, + "value": "Carbon Emissions Offset" + }, + "functionReturnParameters": 7032, + "id": 7058, + "nodeType": "Return", + "src": "14405:32:17" + } + ] + } + }, + "id": 7061, + "nodeType": "IfStatement", + "src": "14267:181:17", + "trueBody": { + "id": 7052, + "nodeType": "Block", + "src": "14295:62:17", + "statements": [ + { + "expression": { + "hexValue": "52656e657761626c6520456e65726779204365727469666963617465", + "id": 7050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14316:30:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_491ffda04c2fd3af4764451485fdf42eea413d5592b658373c8490f938ee7eaf", + "typeString": "literal_string \"Renewable Energy Certificate\"" + }, + "value": "Renewable Energy Certificate" + }, + "functionReturnParameters": 7032, + "id": 7051, + "nodeType": "Return", + "src": "14309:37:17" + } + ] + } + }, + { + "expression": { + "hexValue": "4175646974656420456d697373696f6e73", + "id": 7062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14464:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_046f3c60b998876753271db8209fbb3f30fc328b5a52d84872c0f1bfc6a7cd27", + "typeString": "literal_string \"Audited Emissions\"" + }, + "value": "Audited Emissions" + }, + "functionReturnParameters": 7032, + "id": 7063, + "nodeType": "Return", + "src": "14457:26:17" + } + ] + }, + "documentation": { + "id": 7026, + "nodeType": "StructuredDocumentation", + "src": "13873:121:17", + "text": " @dev returns the token name for the given token as a string value\n @param tokenId token to check" + }, + "functionSelector": "76aed2e1", + "id": 7065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7028, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7065, + "src": "14021:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14021:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14020:17:17" + }, + "returnParameters": { + "id": 7032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7031, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7065, + "src": "14085:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7030, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14085:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14084:15:17" + }, + "scope": 7593, + "src": "13999:492:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7092, + "nodeType": "Block", + "src": "14723:185:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7077, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "14753:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7076, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6487, + "src": "14741:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 7078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14741:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b656e496420646f6573206e6f74206578697374", + "id": 7079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14763:53:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e", + "typeString": "literal_string \"CLM8::getTokenRetiredAmount: tokenId does not exist\"" + }, + "value": "CLM8::getTokenRetiredAmount: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e", + "typeString": "literal_string \"CLM8::getTokenRetiredAmount: tokenId does not exist\"" + } + ], + "id": 7075, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14733:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14733:84:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7081, + "nodeType": "ExpressionStatement", + "src": "14733:84:17" + }, + { + "assignments": [ + 7083 + ], + "declarations": [ + { + "constant": false, + "id": 7083, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7092, + "src": "14827:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14827:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7089, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 7084, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "14844:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 7086, + "indexExpression": { + "id": 7085, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "14861:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14844:25:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7088, + "indexExpression": { + "id": 7087, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7068, + "src": "14870:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14844:34:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14827:51:17" + }, + { + "expression": { + "id": 7090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "14895:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7074, + "id": 7091, + "nodeType": "Return", + "src": "14888:13:17" + } + ] + }, + "documentation": { + "id": 7066, + "nodeType": "StructuredDocumentation", + "src": "14497:98:17", + "text": " @dev returns the retired amount on a token\n @param tokenId token to check" + }, + "functionSelector": "a0d975a7", + "id": 7093, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenRetiredAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7068, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "14631:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14631:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7070, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "14648:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14648:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14630:34:17" + }, + "returnParameters": { + "id": 7074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7073, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "14710:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14710:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14709:9:17" + }, + "scope": 7593, + "src": "14600:308:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7156, + "nodeType": "Block", + "src": "15218:463:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7105, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15248:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7104, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6487, + "src": "15236:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 7106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15236:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206578697374", + "id": 7107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15258:38:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af", + "typeString": "literal_string \"CLM8::retire: tokenId does not exist\"" + }, + "value": "CLM8::retire: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af", + "typeString": "literal_string \"CLM8::retire: tokenId does not exist\"" + } + ], + "id": 7103, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15228:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15228:69:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7109, + "nodeType": "ExpressionStatement", + "src": "15228:69:17" + }, + { + "expression": { + "arguments": [ + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7111, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7098, + "src": "15317:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 7114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15343:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15343:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 7116, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15355:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 7112, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "15327:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 941, + "src": "15327:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15327:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15317:46:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7119, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15316:48:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c61626c652062616c616e636520746f20726574697265", + "id": 7120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15366:54:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2", + "typeString": "literal_string \"CLM8::retire: not enough available balance to retire\"" + }, + "value": "CLM8::retire: not enough available balance to retire" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2", + "typeString": "literal_string \"CLM8::retire: not enough available balance to retire\"" + } + ], + "id": 7110, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15307:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15307:115:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7122, + "nodeType": "ExpressionStatement", + "src": "15307:115:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 7126, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15445:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15445:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 7128, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15457:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7129, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7098, + "src": "15466:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 7123, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "15433:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "15433:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 7130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15433:40:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7131, + "nodeType": "ExpressionStatement", + "src": "15433:40:17" + }, + { + "expression": { + "id": 7147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 7132, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "15483:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 7136, + "indexExpression": { + "id": 7133, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15500:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15483:25:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7137, + "indexExpression": { + "expression": { + "id": 7134, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15509:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15509:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15483:37:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 7145, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7098, + "src": "15565:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 7138, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "15523:16:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 7140, + "indexExpression": { + "id": 7139, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15540:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15523:25:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7143, + "indexExpression": { + "expression": { + "id": 7141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15549:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15549:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15523:37:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "15523:41:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 7146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15523:49:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15483:89:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7148, + "nodeType": "ExpressionStatement", + "src": "15483:89:17" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 7150, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15613:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15613:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 7152, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7096, + "src": "15637:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7153, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7098, + "src": "15658:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7149, + "name": "TokenRetired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6298, + "src": "15587:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 7154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15587:87:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7155, + "nodeType": "EmitStatement", + "src": "15582:92:17" + } + ] + }, + "documentation": { + "id": 7094, + "nodeType": "StructuredDocumentation", + "src": "14914:202:17", + "text": " @dev sets the token to the retire state to disable transfers, mints and burns\n @param tokenId token to set in pause state\n Only contract owner can pause or resume tokens" + }, + "functionSelector": "293a7f2e", + "id": 7157, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7101, + "modifierName": { + "id": 7100, + "name": "consumerOrDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6418, + "src": "15201:16:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15201:16:17" + } + ], + "name": "retire", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7096, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7157, + "src": "15146:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15146:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7098, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7157, + "src": "15171:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15171:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15136:55:17" + }, + "returnParameters": { + "id": 7102, + "nodeType": "ParameterList", + "parameters": [], + "src": "15218:0:17" + }, + "scope": 7593, + "src": "15121:560:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7196, + "nodeType": "Block", + "src": "15878:309:17", + "statements": [ + { + "assignments": [ + 7166 + ], + "declarations": [ + { + "constant": false, + "id": 7166, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "15888:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7165, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15888:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7171, + "initialValue": { + "arguments": [ + { + "id": 7168, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "15915:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7169, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7160, + "src": "15938:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7167, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "15907:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15907:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15888:58:17" + }, + { + "assignments": [ + 7173 + ], + "declarations": [ + { + "constant": false, + "id": 7173, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "15956:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7172, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15956:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7178, + "initialValue": { + "arguments": [ + { + "id": 7175, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "15983:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7176, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7160, + "src": "16009:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7174, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "15975:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15975:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15956:61:17" + }, + { + "assignments": [ + 7180 + ], + "declarations": [ + { + "constant": false, + "id": 7180, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "16027:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16027:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7185, + "initialValue": { + "arguments": [ + { + "id": 7182, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "16053:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7183, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7160, + "src": "16083:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7181, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16045:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16045:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16027:64:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7186, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7166, + "src": "16105:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7187, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7173, + "src": "16120:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16105:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7189, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7180, + "src": "16135:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16105:40:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7193, + "nodeType": "IfStatement", + "src": "16101:57:17", + "trueBody": { + "expression": { + "hexValue": "74727565", + "id": 7191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16154:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7164, + "id": 7192, + "nodeType": "Return", + "src": "16147:11:17" + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 7194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16175:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 7164, + "id": 7195, + "nodeType": "Return", + "src": "16168:12:17" + } + ] + }, + "documentation": { + "id": 7158, + "nodeType": "StructuredDocumentation", + "src": "15687:114:17", + "text": " @dev returns true if Dealer's account is registered\n @param account address of the dealer" + }, + "functionSelector": "69f7ef44", + "id": 7197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDealerRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7160, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7197, + "src": "15834:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15834:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15833:17:17" + }, + "returnParameters": { + "id": 7164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7163, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7197, + "src": "15872:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7162, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15872:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15871:6:17" + }, + "scope": 7593, + "src": "15806:381:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7210, + "nodeType": "Block", + "src": "16389:61:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7206, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "16414:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7207, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7200, + "src": "16435:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7205, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16406:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16406:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7204, + "id": 7209, + "nodeType": "Return", + "src": "16399:44:17" + } + ] + }, + "documentation": { + "id": 7198, + "nodeType": "StructuredDocumentation", + "src": "16193:117:17", + "text": " @dev returns true if Consumers's account is registered\n @param account address of the dealer" + }, + "functionSelector": "33781a0e", + "id": 7211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isConsumerRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7200, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7211, + "src": "16345:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7199, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16345:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16344:17:17" + }, + "returnParameters": { + "id": 7204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7203, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7211, + "src": "16383:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7202, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16383:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16382:6:17" + }, + "scope": 7593, + "src": "16315:135:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7228, + "nodeType": "Block", + "src": "16672:86:17", + "statements": [ + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7220, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7214, + "src": "16709:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7219, + "name": "isDealerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7197, + "src": "16690:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 7221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16690:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 7223, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7214, + "src": "16742:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7222, + "name": "isConsumerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7211, + "src": "16721:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 7224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16721:29:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16690:60:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7226, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16689:62:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7218, + "id": 7227, + "nodeType": "Return", + "src": "16682:69:17" + } + ] + }, + "documentation": { + "id": 7212, + "nodeType": "StructuredDocumentation", + "src": "16456:138:17", + "text": " @dev returns true if Consumers's or Dealer's account is registered\n @param account address of the consumer/dealer" + }, + "id": 7229, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDealerOrConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7214, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7229, + "src": "16627:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16627:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16626:17:17" + }, + "returnParameters": { + "id": 7218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7217, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7229, + "src": "16666:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7216, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16666:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16665:6:17" + }, + "scope": 7593, + "src": "16599:159:17", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7287, + "nodeType": "Block", + "src": "16989:422:17", + "statements": [ + { + "assignments": [ + 7246 + ], + "declarations": [ + { + "constant": false, + "id": 7246, + "mutability": "mutable", + "name": "isAdmin", + "nodeType": "VariableDeclaration", + "scope": 7287, + "src": "16999:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7245, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16999:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7251, + "initialValue": { + "arguments": [ + { + "id": 7248, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "17022:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7249, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7232, + "src": "17042:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7247, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17014:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17014:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16999:51:17" + }, + { + "assignments": [ + 7253 + ], + "declarations": [ + { + "constant": false, + "id": 7253, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 7287, + "src": "17060:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7252, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17060:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7258, + "initialValue": { + "arguments": [ + { + "id": 7255, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "17087:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7256, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7232, + "src": "17110:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7254, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17079:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17079:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17060:58:17" + }, + { + "assignments": [ + 7260 + ], + "declarations": [ + { + "constant": false, + "id": 7260, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 7287, + "src": "17128:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7259, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17128:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7265, + "initialValue": { + "arguments": [ + { + "id": 7262, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "17155:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7263, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7232, + "src": "17181:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7261, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17147:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17147:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17128:61:17" + }, + { + "assignments": [ + 7267 + ], + "declarations": [ + { + "constant": false, + "id": 7267, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 7287, + "src": "17199:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7266, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17199:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7272, + "initialValue": { + "arguments": [ + { + "id": 7269, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "17225:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7270, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7232, + "src": "17255:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7268, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17217:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17217:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17199:64:17" + }, + { + "assignments": [ + 7274 + ], + "declarations": [ + { + "constant": false, + "id": 7274, + "mutability": "mutable", + "name": "isConsumer", + "nodeType": "VariableDeclaration", + "scope": 7287, + "src": "17273:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7273, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17273:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7279, + "initialValue": { + "arguments": [ + { + "id": 7276, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "17299:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7277, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7232, + "src": "17320:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7275, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17291:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17291:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17273:55:17" + }, + { + "expression": { + "components": [ + { + "id": 7280, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7246, + "src": "17346:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 7281, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7253, + "src": "17355:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 7282, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7260, + "src": "17368:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 7283, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7267, + "src": "17381:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 7284, + "name": "isConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7274, + "src": "17393:10:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7285, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17345:59:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool,bool,bool,bool)" + } + }, + "functionReturnParameters": 7244, + "id": 7286, + "nodeType": "Return", + "src": "17338:66:17" + } + ] + }, + "documentation": { + "id": 7230, + "nodeType": "StructuredDocumentation", + "src": "16764:132:17", + "text": " @dev Helper function for returning tuple of bools of role membership\n @param account address to check roles" + }, + "functionSelector": "ce6ccfaf", + "id": 7288, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoles", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7232, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16919:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16919:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16918:17:17" + }, + "returnParameters": { + "id": 7244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16959:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7234, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16959:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7237, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16965:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16965:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7239, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16971:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7238, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16971:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7241, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16977:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7240, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16977:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7243, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7288, + "src": "16983:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7242, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16983:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16958:30:17" + }, + "scope": 7593, + "src": "16901:510:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7340, + "nodeType": "Block", + "src": "17692:551:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7300, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7293, + "src": "17729:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 7299, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "17710:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 7301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17710:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a72656769737465724465616c65723a20746f6b656e54797065496420646f6573206e6f74206578697374", + "id": 7302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17743:50:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472", + "typeString": "literal_string \"CLM8::registerDealer: tokenTypeId does not exist\"" + }, + "value": "CLM8::registerDealer: tokenTypeId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472", + "typeString": "literal_string \"CLM8::registerDealer: tokenTypeId does not exist\"" + } + ], + "id": 7298, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17702:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17702:92:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7304, + "nodeType": "ExpressionStatement", + "src": "17702:92:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7305, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7293, + "src": "17808:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 7306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17823:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "17808:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7314, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7293, + "src": "17902:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 7315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17917:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "17902:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7328, + "nodeType": "Block", + "src": "17995:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7324, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "18019:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7325, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7291, + "src": "18049:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7323, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18009:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18009:48:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7327, + "nodeType": "ExpressionStatement", + "src": "18009:48:17" + } + ] + }, + "id": 7329, + "nodeType": "IfStatement", + "src": "17898:170:17", + "trueBody": { + "id": 7322, + "nodeType": "Block", + "src": "17920:69:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7318, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "17944:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7319, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7291, + "src": "17970:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7317, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "17934:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17934:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7321, + "nodeType": "ExpressionStatement", + "src": "17934:44:17" + } + ] + } + }, + "id": 7330, + "nodeType": "IfStatement", + "src": "17804:264:17", + "trueBody": { + "id": 7313, + "nodeType": "Block", + "src": "17826:66:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7309, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "17850:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7310, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7291, + "src": "17873:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7308, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "17840:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17840:41:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7312, + "nodeType": "ExpressionStatement", + "src": "17840:41:17" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7332, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6207, + "src": "18169:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7333, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7291, + "src": "18188:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7331, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18159:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18159:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7335, + "nodeType": "ExpressionStatement", + "src": "18159:37:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 7337, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7291, + "src": "18228:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7336, + "name": "RegisteredDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6310, + "src": "18211:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18211:25:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7339, + "nodeType": "EmitStatement", + "src": "18206:30:17" + } + ] + }, + "documentation": { + "id": 7289, + "nodeType": "StructuredDocumentation", + "src": "17417:171:17", + "text": " @dev Only contract owner can register Dealers\n @param account address of the dealer to register\n Only registered Dealers can transfer tokens" + }, + "functionSelector": "31aa4b20", + "id": 7341, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7296, + "modifierName": { + "id": 7295, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6468, + "src": "17678:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17678:9:17" + } + ], + "name": "registerDealer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7291, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7341, + "src": "17617:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17617:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7293, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 7341, + "src": "17634:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7292, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "17634:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "17616:36:17" + }, + "returnParameters": { + "id": 7297, + "nodeType": "ParameterList", + "parameters": [], + "src": "17692:0:17" + }, + "scope": 7593, + "src": "17593:650:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7370, + "nodeType": "Block", + "src": "18455:267:17", + "statements": [ + { + "condition": { + "id": 7349, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18469:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7360, + "nodeType": "IfStatement", + "src": "18465:160:17", + "trueBody": { + "id": 7359, + "nodeType": "Block", + "src": "18482:143:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7352, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "18512:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18532:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "18532:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7351, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "18504:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18504:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d657273", + "id": 7356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18545:68:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad", + "typeString": "literal_string \"CLM8::registerConsumer(limited): only admin can register consumers\"" + }, + "value": "CLM8::registerConsumer(limited): only admin can register consumers" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad", + "typeString": "literal_string \"CLM8::registerConsumer(limited): only admin can register consumers\"" + } + ], + "id": 7350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18496:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18496:118:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7358, + "nodeType": "ExpressionStatement", + "src": "18496:118:17" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7362, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "18644:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7363, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7344, + "src": "18665:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7361, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18634:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18634:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7365, + "nodeType": "ExpressionStatement", + "src": "18634:39:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 7367, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7344, + "src": "18707:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7366, + "name": "RegisteredConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6302, + "src": "18688:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18688:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7369, + "nodeType": "EmitStatement", + "src": "18683:32:17" + } + ] + }, + "documentation": { + "id": 7342, + "nodeType": "StructuredDocumentation", + "src": "18249:138:17", + "text": " @dev returns true if Consumer's account is registered for the given token\n @param account address of the consumer" + }, + "functionSelector": "44b22fdd", + "id": 7371, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7347, + "modifierName": { + "id": 7346, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6455, + "src": "18444:10:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18444:10:17" + } + ], + "name": "registerConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7344, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7371, + "src": "18418:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18418:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18417:17:17" + }, + "returnParameters": { + "id": 7348, + "nodeType": "ParameterList", + "parameters": [], + "src": "18455:0:17" + }, + "scope": 7593, + "src": "18392:330:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7435, + "nodeType": "Block", + "src": "18949:634:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7383, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7376, + "src": "18986:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 7382, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "18967:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 7384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18967:31:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797065496420646f6573206e6f74206578697374", + "id": 7385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19000:52:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3", + "typeString": "literal_string \"CLM8::unregisterDealer: tokenTypeId does not exist\"" + }, + "value": "CLM8::unregisterDealer: tokenTypeId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3", + "typeString": "literal_string \"CLM8::unregisterDealer: tokenTypeId does not exist\"" + } + ], + "id": 7381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18959:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18959:94:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7387, + "nodeType": "ExpressionStatement", + "src": "18959:94:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7388, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7376, + "src": "19067:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 7389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19082:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "19067:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7399, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7376, + "src": "19168:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 7400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19183:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "19168:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7417, + "nodeType": "Block", + "src": "19268:80:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7413, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6222, + "src": "19299:28:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7414, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19329:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 7410, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19282:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19282:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19282:55:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7416, + "nodeType": "ExpressionStatement", + "src": "19282:55:17" + } + ] + }, + "id": 7418, + "nodeType": "IfStatement", + "src": "19164:184:17", + "trueBody": { + "id": 7409, + "nodeType": "Block", + "src": "19186:76:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7405, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6217, + "src": "19217:24:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7406, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19243:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 7402, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19200:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19200:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19200:51:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7408, + "nodeType": "ExpressionStatement", + "src": "19200:51:17" + } + ] + } + }, + "id": 7419, + "nodeType": "IfStatement", + "src": "19063:285:17", + "trueBody": { + "id": 7398, + "nodeType": "Block", + "src": "19085:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7394, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6212, + "src": "19116:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7395, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19139:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 7391, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19099:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19099:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19099:48:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7397, + "nodeType": "ExpressionStatement", + "src": "19099:48:17" + } + ] + } + }, + { + "condition": { + "id": 7423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19441:28:17", + "subExpression": { + "arguments": [ + { + "id": 7421, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19461:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7420, + "name": "isDealerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7197, + "src": "19442:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19442:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7430, + "nodeType": "IfStatement", + "src": "19437:97:17", + "trueBody": { + "id": 7429, + "nodeType": "Block", + "src": "19471:63:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7425, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6207, + "src": "19496:17:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7426, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19515:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7424, + "name": "revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "19485:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19485:38:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7428, + "nodeType": "ExpressionStatement", + "src": "19485:38:17" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 7432, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "19568:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7431, + "name": "UnregisteredDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6314, + "src": "19549:18:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19549:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7434, + "nodeType": "EmitStatement", + "src": "19544:32:17" + } + ] + }, + "documentation": { + "id": 7372, + "nodeType": "StructuredDocumentation", + "src": "18728:115:17", + "text": " @dev Only contract owner can unregister Dealers\n @param account address to be unregistered" + }, + "functionSelector": "e2e564f2", + "id": 7436, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7379, + "modifierName": { + "id": 7378, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6468, + "src": "18935:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18935:9:17" + } + ], + "name": "unregisterDealer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7374, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7436, + "src": "18874:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18874:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7376, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 7436, + "src": "18891:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7375, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "18891:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "18873:36:17" + }, + "returnParameters": { + "id": 7380, + "nodeType": "ParameterList", + "parameters": [], + "src": "18949:0:17" + }, + "scope": 7593, + "src": "18848:735:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7467, + "nodeType": "Block", + "src": "19776:280:17", + "statements": [ + { + "condition": { + "id": 7444, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "19790:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7455, + "nodeType": "IfStatement", + "src": "19786:164:17", + "trueBody": { + "id": 7454, + "nodeType": "Block", + "src": "19803:147:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7447, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "19833:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7448, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19853:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "19853:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7446, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "19825:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19825:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a756e7265676973746572436f6e73756d6572286c696d69746564293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e73756d657273", + "id": 7451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19866:72:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2", + "typeString": "literal_string \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\"" + }, + "value": "CLM8::unregisterConsumer(limited): only admin can unregister consumers" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2", + "typeString": "literal_string \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\"" + } + ], + "id": 7445, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19817:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19817:122:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7453, + "nodeType": "ExpressionStatement", + "src": "19817:122:17" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7459, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6227, + "src": "19976:19:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7460, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "19997:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 7456, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19959:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19959:16:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19959:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7462, + "nodeType": "ExpressionStatement", + "src": "19959:46:17" + }, + { + "eventCall": { + "arguments": [ + { + "id": 7464, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7439, + "src": "20041:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7463, + "name": "UnregisteredConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6306, + "src": "20020:20:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20020:29:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7466, + "nodeType": "EmitStatement", + "src": "20015:34:17" + } + ] + }, + "documentation": { + "id": 7437, + "nodeType": "StructuredDocumentation", + "src": "19589:117:17", + "text": " @dev Only contract owner can unregister Consumers\n @param account address to be unregistered" + }, + "functionSelector": "53dbe982", + "id": 7468, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7442, + "modifierName": { + "id": 7441, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6455, + "src": "19765:10:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "19765:10:17" + } + ], + "name": "unregisterConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7439, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7468, + "src": "19739:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19739:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "19738:17:17" + }, + "returnParameters": { + "id": 7443, + "nodeType": "ParameterList", + "parameters": [], + "src": "19776:0:17" + }, + "scope": 7593, + "src": "19711:345:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7507, + "nodeType": "Block", + "src": "20561:255:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7473, + "src": "20591:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7481, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6487, + "src": "20579:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 7483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20579:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f74206578697374", + "id": 7484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20601:40:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a", + "typeString": "literal_string \"CLM8::transfer: tokenId does not exist\"" + }, + "value": "CLM8::transfer: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a", + "typeString": "literal_string \"CLM8::transfer: tokenId does not exist\"" + } + ], + "id": 7480, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20571:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20571:71:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7486, + "nodeType": "ExpressionStatement", + "src": "20571:71:17" + }, + { + "expression": { + "arguments": [ + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 7488, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20661:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "20661:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 7490, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7471, + "src": "20675:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20661:16:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7492, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20660:18:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7472616e736665723a2073656e64657220616e642072656365697665722063616e6e6f74206265207468652073616d65", + "id": 7493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20680:56:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1", + "typeString": "literal_string \"CLM8::transfer: sender and receiver cannot be the same\"" + }, + "value": "CLM8::transfer: sender and receiver cannot be the same" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1", + "typeString": "literal_string \"CLM8::transfer: sender and receiver cannot be the same\"" + } + ], + "id": 7487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20652:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:85:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7495, + "nodeType": "ExpressionStatement", + "src": "20652:85:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 7499, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20770:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "20770:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 7501, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7471, + "src": "20782:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7502, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7473, + "src": "20786:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7503, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7475, + "src": "20795:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30783030", + "id": 7504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20802:6:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", + "typeString": "literal_string \"0x00\"" + }, + "value": "0x00" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", + "typeString": "literal_string \"0x00\"" + } + ], + "expression": { + "id": 7496, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "20747:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1163, + "src": "20747:22:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,uint256,bytes memory)" + } + }, + "id": 7505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20747:62:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7506, + "nodeType": "ExpressionStatement", + "src": "20747:62:17" + } + ] + }, + "documentation": { + "id": 7469, + "nodeType": "StructuredDocumentation", + "src": "20062:376:17", + "text": " @dev transfers the value to the 'to' account for tokenId\n @param to recipient address\n @param tokenId tokenId for the transfer\n @param value amount of transfer\n Transfer can start only when both parties are registered and the token is not paused\n Note: Token holders can arbitrarily call safeTransferFrom() without these checks" + }, + "functionSelector": "095bcdb6", + "id": 7508, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7478, + "modifierName": { + "id": 7477, + "name": "consumerOrDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6418, + "src": "20544:16:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20544:16:17" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7471, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 7508, + "src": "20470:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20470:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7473, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7508, + "src": "20490:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20490:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7475, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 7508, + "src": "20515:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20515:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20460:74:17" + }, + "returnParameters": { + "id": 7479, + "nodeType": "ParameterList", + "parameters": [], + "src": "20561:0:17" + }, + "scope": 7593, + "src": "20443:373:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7519, + "nodeType": "Block", + "src": "20895:37:17", + "statements": [ + { + "expression": { + "id": 7517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7515, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6202, + "src": "20905:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7516, + "name": "_timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7510, + "src": "20916:9:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20905:20:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7518, + "nodeType": "ExpressionStatement", + "src": "20905:20:17" + } + ] + }, + "functionSelector": "bdacb303", + "id": 7520, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7513, + "modifierName": { + "id": 7512, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6468, + "src": "20885:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20885:9:17" + } + ], + "name": "setTimelock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7510, + "mutability": "mutable", + "name": "_timelock", + "nodeType": "VariableDeclaration", + "scope": 7520, + "src": "20852:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20852:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "20842:33:17" + }, + "returnParameters": { + "id": 7514, + "nodeType": "ParameterList", + "parameters": [], + "src": "20895:0:17" + }, + "scope": 7593, + "src": "20822:110:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7551, + "nodeType": "Block", + "src": "21073:179:17", + "statements": [ + { + "assignments": [ + 7532 + ], + "declarations": [ + { + "constant": false, + "id": 7532, + "mutability": "mutable", + "name": "available", + "nodeType": "VariableDeclaration", + "scope": 7551, + "src": "21083:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7531, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21083:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7538, + "initialValue": { + "arguments": [ + { + "id": 7535, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "21119:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7536, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7524, + "src": "21128:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 7533, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "21103:5:17", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract super NetEmissionsTokenNetwork" + } + }, + "id": 7534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 941, + "src": "21103:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 7537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21103:33:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21083:53:17" + }, + { + "assignments": [ + 7540 + ], + "declarations": [ + { + "constant": false, + "id": 7540, + "mutability": "mutable", + "name": "retired", + "nodeType": "VariableDeclaration", + "scope": 7551, + "src": "21146:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21146:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7546, + "initialValue": { + "arguments": [ + { + "id": 7543, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "21191:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7544, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7524, + "src": "21200:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 7541, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21164:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NetEmissionsTokenNetwork_$7593", + "typeString": "contract NetEmissionsTokenNetwork" + } + }, + "id": 7542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenRetiredAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 7093, + "src": "21164:26:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view external returns (uint256)" + } + }, + "id": 7545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21164:44:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21146:62:17" + }, + { + "expression": { + "components": [ + { + "id": 7547, + "name": "available", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7532, + "src": "21226:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7548, + "name": "retired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7540, + "src": "21237:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7549, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21225:20:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 7530, + "id": 7550, + "nodeType": "Return", + "src": "21218:27:17" + } + ] + }, + "functionSelector": "7f157c9b", + "id": 7552, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAvailableAndRetired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7522, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7552, + "src": "20970:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20970:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7524, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7552, + "src": "20987:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20987:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20969:34:17" + }, + "returnParameters": { + "id": 7530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7527, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7552, + "src": "21051:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21051:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7552, + "src": "21060:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21060:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21050:18:17" + }, + "scope": 7593, + "src": "20938:314:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7565, + "nodeType": "Block", + "src": "21416:53:17", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 7560, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "21433:13:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref)" + } + }, + "id": 7562, + "indexExpression": { + "id": 7561, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7555, + "src": "21447:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21433:22:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref" + } + }, + "id": 7563, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6233, + "src": "21433:29:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7559, + "id": 7564, + "nodeType": "Return", + "src": "21426:36:17" + } + ] + }, + "documentation": { + "id": 7553, + "nodeType": "StructuredDocumentation", + "src": "21258:57:17", + "text": " @dev returns issuer of a given tokenId" + }, + "functionSelector": "92089c46", + "id": 7566, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7555, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7566, + "src": "21339:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21339:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21338:17:17" + }, + "returnParameters": { + "id": 7559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7558, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7566, + "src": "21403:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21403:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "21402:9:17" + }, + "scope": 7593, + "src": "21320:149:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7578, + "nodeType": "Block", + "src": "21717:46:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 7574, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "21734:13:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$6250_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref)" + } + }, + "id": 7576, + "indexExpression": { + "id": 7575, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7569, + "src": "21748:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21734:22:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails storage ref" + } + }, + "functionReturnParameters": 7573, + "id": 7577, + "nodeType": "Return", + "src": "21727:29:17" + } + ] + }, + "documentation": { + "id": 7567, + "nodeType": "StructuredDocumentation", + "src": "21475:117:17", + "text": " @dev returns the details of a given tokenId, omitting holders\n @param tokenId token to check" + }, + "functionSelector": "c1e03728", + "id": 7579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenDetails", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7569, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7579, + "src": "21622:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21622:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21621:17:17" + }, + "returnParameters": { + "id": 7573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7572, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7579, + "src": "21686:25:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_memory_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + }, + "typeName": { + "id": 7571, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6250, + "src": "21686:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$6250_storage_ptr", + "typeString": "struct NetEmissionsTokenNetwork.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "src": "21685:27:17" + }, + "scope": 7593, + "src": "21597:166:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7591, + "nodeType": "Block", + "src": "21949:43:17", + "statements": [ + { + "expression": { + "id": 7589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7587, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "21959:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7588, + "name": "_limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7582, + "src": "21973:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21959:26:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7590, + "nodeType": "ExpressionStatement", + "src": "21959:26:17" + } + ] + }, + "documentation": { + "id": 7580, + "nodeType": "StructuredDocumentation", + "src": "21769:93:17", + "text": " @dev turns off or on limited mode\n @param _limitedMode boolean value" + }, + "functionSelector": "ddc3e6eb", + "id": 7592, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7585, + "modifierName": { + "id": 7584, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6468, + "src": "21935:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21935:9:17" + } + ], + "name": "setLimitedMode", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7582, + "mutability": "mutable", + "name": "_limitedMode", + "nodeType": "VariableDeclaration", + "scope": 7592, + "src": "21891:17:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7581, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "21891:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "21890:19:17" + }, + "returnParameters": { + "id": 7586, + "nodeType": "ParameterList", + "parameters": [], + "src": "21949:0:17" + }, + "scope": 7593, + "src": "21867:125:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7594, + "src": "485:21510:17" + } + ], + "src": "39:21957:17" + }, + "id": 17 + }, + "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol": { + "ast": { + "absolutePath": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 307 + ], + "AddressUpgradeable": [ + 2272 + ], + "ContextUpgradeable": [ + 2317 + ], + "CountersUpgradeable": [ + 2367 + ], + "ERC1155Upgradeable": [ + 1850 + ], + "ERC165Upgradeable": [ + 382 + ], + "EnumerableSetUpgradeable": [ + 2859 + ], + "IERC1155MetadataURIUpgradeable": [ + 1865 + ], + "IERC1155ReceiverUpgradeable": [ + 1906 + ], + "IERC1155Upgradeable": [ + 2028 + ], + "IERC165Upgradeable": [ + 394 + ], + "Initializable": [ + 815 + ], + "NetEmissionsTokenNetworkV2": [ + 9012 + ], + "SafeMathUpgradeable": [ + 749 + ] + }, + "id": 9013, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7595, + "literals": [ + "solidity", + "^", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "39:23:18" + }, + { + "id": 7596, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "63:33:18" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol", + "id": 7597, + "nodeType": "ImportDirective", + "scope": 9013, + "sourceUnit": 750, + "src": "98:74:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "id": 7598, + "nodeType": "ImportDirective", + "scope": 9013, + "sourceUnit": 308, + "src": "173:81:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol", + "id": 7599, + "nodeType": "ImportDirective", + "scope": 9013, + "sourceUnit": 1851, + "src": "255:82:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol", + "id": 7600, + "nodeType": "ImportDirective", + "scope": 9013, + "sourceUnit": 2368, + "src": "338:75:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol", + "id": 7601, + "nodeType": "ImportDirective", + "scope": 9013, + "sourceUnit": 816, + "src": "414:69:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 7602, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 815, + "src": "641:13:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$815", + "typeString": "contract Initializable" + } + }, + "id": 7603, + "nodeType": "InheritanceSpecifier", + "src": "641:13:18" + }, + { + "baseName": { + "id": 7604, + "name": "ERC1155Upgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1850, + "src": "656:18:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155Upgradeable_$1850", + "typeString": "contract ERC1155Upgradeable" + } + }, + "id": 7605, + "nodeType": "InheritanceSpecifier", + "src": "656:18:18" + }, + { + "baseName": { + "id": 7606, + "name": "AccessControlUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 307, + "src": "676:24:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AccessControlUpgradeable_$307", + "typeString": "contract AccessControlUpgradeable" + } + }, + "id": 7607, + "nodeType": "InheritanceSpecifier", + "src": "676:24:18" + } + ], + "contractDependencies": [ + 307, + 382, + 394, + 815, + 1850, + 1865, + 2028, + 2317 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 9012, + "linearizedBaseContracts": [ + 9012, + 307, + 1850, + 1865, + 2028, + 382, + 394, + 2317, + 815 + ], + "name": "NetEmissionsTokenNetworkV2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7610, + "libraryName": { + "id": 7608, + "name": "SafeMathUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 749, + "src": "714:19:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMathUpgradeable_$749", + "typeString": "library SafeMathUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "708:38:18", + "typeName": { + "id": 7609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "738:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 7613, + "libraryName": { + "id": 7611, + "name": "CountersUpgradeable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2367, + "src": "757:19:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CountersUpgradeable_$2367", + "typeString": "library CountersUpgradeable" + } + }, + "nodeType": "UsingForDirective", + "src": "751:58:18", + "typeName": { + "id": 7612, + "name": "CountersUpgradeable.Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "781:27:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + } + }, + { + "constant": false, + "functionSelector": "dba851b0", + "id": 7615, + "mutability": "mutable", + "name": "limitedMode", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "815:23:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7614, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "815:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f851a440", + "id": 7617, + "mutability": "mutable", + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "932:20:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "932:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7619, + "mutability": "mutable", + "name": "timelock", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1044:24:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1044:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "18a50d7e", + "id": 7624, + "mutability": "constant", + "name": "REGISTERED_DEALER", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1222:82:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7620, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1222:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f4445414c4552", + "id": 7622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1284:19:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3", + "typeString": "literal_string \"REGISTERED_DEALER\"" + }, + "value": "REGISTERED_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_f8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3", + "typeString": "literal_string \"REGISTERED_DEALER\"" + } + ], + "id": 7621, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1274:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1274:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "fcba7948", + "id": 7629, + "mutability": "constant", + "name": "REGISTERED_REC_DEALER", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1343:90:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7625, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1343:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f5245435f4445414c4552", + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1409:23:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860", + "typeString": "literal_string \"REGISTERED_REC_DEALER\"" + }, + "value": "REGISTERED_REC_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860", + "typeString": "literal_string \"REGISTERED_REC_DEALER\"" + } + ], + "id": 7626, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1399:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1399:34:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "1ef68ef7", + "id": 7634, + "mutability": "constant", + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1439:96:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7630, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1439:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f4f46465345545f4445414c4552", + "id": 7632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1508:26:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f", + "typeString": "literal_string \"REGISTERED_OFFSET_DEALER\"" + }, + "value": "REGISTERED_OFFSET_DEALER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f", + "typeString": "literal_string \"REGISTERED_OFFSET_DEALER\"" + } + ], + "id": 7631, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1498:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1498:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "76ce4755", + "id": 7639, + "mutability": "constant", + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1541:104:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7635, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1541:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f454d495353494f4e535f41554449544f52", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1614:30:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c", + "typeString": "literal_string \"REGISTERED_EMISSIONS_AUDITOR\"" + }, + "value": "REGISTERED_EMISSIONS_AUDITOR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_e97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c", + "typeString": "literal_string \"REGISTERED_EMISSIONS_AUDITOR\"" + } + ], + "id": 7636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1604:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1604:41:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "78e5c592", + "id": 7644, + "mutability": "constant", + "name": "REGISTERED_CONSUMER", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "1672:86:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7640, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1672:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "524547495354455245445f434f4e53554d4552", + "id": 7642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1736:21:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a", + "typeString": "literal_string \"REGISTERED_CONSUMER\"" + }, + "value": "REGISTERED_CONSUMER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a", + "typeString": "literal_string \"REGISTERED_CONSUMER\"" + } + ], + "id": 7641, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1726:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1726:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "canonicalName": "NetEmissionsTokenNetworkV2.CarbonTokenDetails", + "id": 7667, + "members": [ + { + "constant": false, + "id": 7646, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2376:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2376:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7648, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2401:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7647, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2401:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7650, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2428:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2428:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7652, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2452:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2452:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7654, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2476:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2476:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7656, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2502:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2502:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7658, + "mutability": "mutable", + "name": "dateCreated", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2528:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2528:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7660, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2557:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2557:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7662, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2594:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7661, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2594:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7664, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2619:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7663, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2619:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7666, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 7667, + "src": "2644:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7665, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2644:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CarbonTokenDetails", + "nodeType": "StructDefinition", + "scope": 9012, + "src": "2340:329:18", + "visibility": "public" + }, + { + "constant": false, + "id": 7669, + "mutability": "mutable", + "name": "_numOfUniqueTokens", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "2736:54:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter" + }, + "typeName": { + "id": 7668, + "name": "CountersUpgradeable.Counter", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2327, + "src": "2736:27:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage_ptr", + "typeString": "struct CountersUpgradeable.Counter" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 7673, + "mutability": "mutable", + "name": "_tokenDetails", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "2840:60:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails)" + }, + "typeName": { + "id": 7672, + "keyType": { + "id": 7670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2848:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2840:38:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails)" + }, + "valueType": { + "id": 7671, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7667, + "src": "2859:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 7679, + "mutability": "mutable", + "name": "_retiredBalances", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "2906:72:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "typeName": { + "id": 7678, + "keyType": { + "id": 7674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2914:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2906:47:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "valueType": { + "id": 7677, + "keyType": { + "id": 7675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2933:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2925:27:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 7676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2944:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 7681, + "mutability": "mutable", + "name": "newTestVariable", + "nodeType": "VariableDeclaration", + "scope": 9012, + "src": "2985:31:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "id": 7709, + "name": "TokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 7708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7683, + "indexed": false, + "mutability": "mutable", + "name": "availableBalance", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3065:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3065:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7685, + "indexed": false, + "mutability": "mutable", + "name": "retiredBalance", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3099:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3099:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7687, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3131:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3131:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7689, + "indexed": false, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3156:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7688, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3156:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7691, + "indexed": true, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3183:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3183:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7693, + "indexed": true, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3215:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3215:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7695, + "indexed": false, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3247:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3247:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7697, + "indexed": false, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3273:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3273:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7699, + "indexed": false, + "mutability": "mutable", + "name": "dateCreated", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3299:19:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3299:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7701, + "indexed": false, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3328:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3328:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7703, + "indexed": false, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3365:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7702, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3365:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7705, + "indexed": false, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3390:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7704, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3390:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7707, + "indexed": false, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 7709, + "src": "3415:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3415:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3055:384:18" + }, + "src": "3037:403:18" + }, + { + "anonymous": false, + "id": 7717, + "name": "TokenRetired", + "nodeType": "EventDefinition", + "parameters": { + "id": 7716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7711, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7717, + "src": "3473:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3473:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7713, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7717, + "src": "3506:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3506:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7715, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7717, + "src": "3531:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3531:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3463:88:18" + }, + "src": "3445:107:18" + }, + { + "anonymous": false, + "id": 7721, + "name": "RegisteredConsumer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7719, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7721, + "src": "3582:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3582:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3581:25:18" + }, + "src": "3557:50:18" + }, + { + "anonymous": false, + "id": 7725, + "name": "UnregisteredConsumer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7723, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7725, + "src": "3639:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3639:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3638:25:18" + }, + "src": "3612:52:18" + }, + { + "anonymous": false, + "id": 7729, + "name": "RegisteredDealer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7727, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7729, + "src": "3692:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3692:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3691:25:18" + }, + "src": "3669:48:18" + }, + { + "anonymous": false, + "id": 7733, + "name": "UnregisteredDealer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7731, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7733, + "src": "3747:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3747:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3746:25:18" + }, + "src": "3722:50:18" + }, + { + "body": { + "id": 7789, + "nodeType": "Block", + "src": "3886:538:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 7741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3912:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 7740, + "name": "__ERC1155_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 881, + "src": "3897:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 7742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3897:18:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7743, + "nodeType": "ExpressionStatement", + "src": "3897:18:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7745, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "3987:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7746, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7624, + "src": "4008:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7744, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "3973:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 7747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3973:53:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7748, + "nodeType": "ExpressionStatement", + "src": "3973:53:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7750, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "4072:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7751, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4092:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7749, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4061:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4061:38:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7753, + "nodeType": "ExpressionStatement", + "src": "4061:38:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7755, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7624, + "src": "4120:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7756, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4139:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7754, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4109:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7758, + "nodeType": "ExpressionStatement", + "src": "4109:37:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7760, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "4167:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7761, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4190:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7759, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4156:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4156:41:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7763, + "nodeType": "ExpressionStatement", + "src": "4156:41:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7765, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "4218:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7766, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4244:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7764, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4207:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4207:44:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7768, + "nodeType": "ExpressionStatement", + "src": "4207:44:18" + }, + { + "expression": { + "arguments": [ + { + "id": 7770, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "4272:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 7771, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4302:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7769, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "4261:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4261:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7773, + "nodeType": "ExpressionStatement", + "src": "4261:48:18" + }, + { + "expression": { + "id": 7776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7774, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7617, + "src": "4319:5:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 7775, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7735, + "src": "4327:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4319:14:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7777, + "nodeType": "ExpressionStatement", + "src": "4319:14:18" + }, + { + "expression": { + "id": 7783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7778, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7619, + "src": "4366:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "30", + "id": 7781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4385:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4377:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4377:7:18", + "typeDescriptions": {} + } + }, + "id": 7782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4377:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4366:21:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7784, + "nodeType": "ExpressionStatement", + "src": "4366:21:18" + }, + { + "expression": { + "id": 7787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7785, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "4398:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 7786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4412:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4398:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7788, + "nodeType": "ExpressionStatement", + "src": "4398:19:18" + } + ] + }, + "functionSelector": "c4d66de8", + "id": 7790, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 7738, + "modifierName": { + "id": 7737, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "3874:11:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3874:11:18" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7735, + "mutability": "mutable", + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 7790, + "src": "3851:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3851:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3850:16:18" + }, + "returnParameters": { + "id": 7739, + "nodeType": "ParameterList", + "parameters": [], + "src": "3886:0:18" + }, + "scope": 9012, + "src": "3831:593:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7836, + "nodeType": "Block", + "src": "4458:482:18", + "statements": [ + { + "assignments": [ + 7793 + ], + "declarations": [ + { + "constant": false, + "id": 7793, + "mutability": "mutable", + "name": "isConsumer", + "nodeType": "VariableDeclaration", + "scope": 7836, + "src": "4468:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7792, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4468:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7799, + "initialValue": { + "arguments": [ + { + "id": 7795, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "4494:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7796, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4515:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4515:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7794, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4486:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4486:40:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4468:58:18" + }, + { + "assignments": [ + 7801 + ], + "declarations": [ + { + "constant": false, + "id": 7801, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 7836, + "src": "4536:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4536:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7807, + "initialValue": { + "arguments": [ + { + "id": 7803, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "4563:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7804, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4586:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4586:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7802, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4555:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4555:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4536:61:18" + }, + { + "assignments": [ + 7809 + ], + "declarations": [ + { + "constant": false, + "id": 7809, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 7836, + "src": "4607:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7808, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4607:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7815, + "initialValue": { + "arguments": [ + { + "id": 7811, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "4634:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7812, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4660:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4660:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7810, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4626:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4626:45:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4607:64:18" + }, + { + "assignments": [ + 7817 + ], + "declarations": [ + { + "constant": false, + "id": 7817, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 7836, + "src": "4681:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7816, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4681:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7823, + "initialValue": { + "arguments": [ + { + "id": 7819, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "4707:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7820, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4737:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4737:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7818, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4699:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4699:49:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4681:67:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7825, + "name": "isConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7793, + "src": "4780:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7826, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7801, + "src": "4794:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4780:25:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7828, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7809, + "src": "4809:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4780:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7830, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7817, + "src": "4824:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4780:54:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e646572206e6f74206120636f6e73756d6572206f722061206465616c6572", + "id": 7832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4848:63:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047", + "typeString": "literal_string \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"" + }, + "value": "CLM8::consumerOrDealer: msg.sender not a consumer or a dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f18217978c168abee7a7156d17145e0246952f475f3e52a50191a73581bbf047", + "typeString": "literal_string \"CLM8::consumerOrDealer: msg.sender not a consumer or a dealer\"" + } + ], + "id": 7824, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4759:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4759:162:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7834, + "nodeType": "ExpressionStatement", + "src": "4759:162:18" + }, + { + "id": 7835, + "nodeType": "PlaceholderStatement", + "src": "4932:1:18" + } + ] + }, + "id": 7837, + "name": "consumerOrDealer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7791, + "nodeType": "ParameterList", + "parameters": [], + "src": "4455:2:18" + }, + "src": "4430:510:18", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7873, + "nodeType": "Block", + "src": "4968:379:18", + "statements": [ + { + "assignments": [ + 7840 + ], + "declarations": [ + { + "constant": false, + "id": 7840, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 7873, + "src": "4978:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7839, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4978:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7846, + "initialValue": { + "arguments": [ + { + "id": 7842, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "5005:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7843, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5028:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5028:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7841, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4997:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4997:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4978:61:18" + }, + { + "assignments": [ + 7848 + ], + "declarations": [ + { + "constant": false, + "id": 7848, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 7873, + "src": "5049:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7847, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5049:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7854, + "initialValue": { + "arguments": [ + { + "id": 7850, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "5076:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7851, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5102:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5102:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7849, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5068:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5068:45:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5049:64:18" + }, + { + "assignments": [ + 7856 + ], + "declarations": [ + { + "constant": false, + "id": 7856, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 7873, + "src": "5123:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7855, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5123:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7862, + "initialValue": { + "arguments": [ + { + "id": 7858, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "5149:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7859, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5179:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5179:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7857, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5141:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5141:49:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5123:67:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7864, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7840, + "src": "5222:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7865, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7848, + "src": "5237:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5222:26:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7867, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7856, + "src": "5252:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5222:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f742061206465616c6572", + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5276:43:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f", + "typeString": "literal_string \"CLM8::onlyDealer: msg.sender not a dealer\"" + }, + "value": "CLM8::onlyDealer: msg.sender not a dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0cbef3cc12766f0b1a8193e2b09f47f345b74edd3ce5e7beb0924fa72cb0774f", + "typeString": "literal_string \"CLM8::onlyDealer: msg.sender not a dealer\"" + } + ], + "id": 7863, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5201:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:128:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7871, + "nodeType": "ExpressionStatement", + "src": "5201:128:18" + }, + { + "id": 7872, + "nodeType": "PlaceholderStatement", + "src": "5339:1:18" + } + ] + }, + "id": 7874, + "name": "onlyDealer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7838, + "nodeType": "ParameterList", + "parameters": [], + "src": "4965:2:18" + }, + "src": "4946:401:18", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7886, + "nodeType": "Block", + "src": "5374:155:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 7878, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "5413:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 7879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5433:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5433:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7877, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "5405:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 7881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f74207468652061646d696e", + "id": 7882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:43:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2", + "typeString": "literal_string \"CLM8::onlyAdmin: msg.sender not the admin\"" + }, + "value": "CLM8::onlyAdmin: msg.sender not the admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4ba6a4dff6a4b2310f085750099895191b9f81ad83532299ce726e45e26d26f2", + "typeString": "literal_string \"CLM8::onlyAdmin: msg.sender not the admin\"" + } + ], + "id": 7876, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5384:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5384:127:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7884, + "nodeType": "ExpressionStatement", + "src": "5384:127:18" + }, + { + "id": 7885, + "nodeType": "PlaceholderStatement", + "src": "5521:1:18" + } + ] + }, + "id": 7887, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7875, + "nodeType": "ParameterList", + "parameters": [], + "src": "5371:2:18" + }, + "src": "5353:176:18", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7905, + "nodeType": "Block", + "src": "5664:118:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7895, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "5678:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "5678:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 7897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5678:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 7898, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7890, + "src": "5710:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5678:39:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7902, + "nodeType": "IfStatement", + "src": "5674:56:18", + "trueBody": { + "expression": { + "hexValue": "74727565", + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5726:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7894, + "id": 7901, + "nodeType": "Return", + "src": "5719:11:18" + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5747:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 7894, + "id": 7904, + "nodeType": "Return", + "src": "5740:12:18" + } + ] + }, + "documentation": { + "id": 7888, + "nodeType": "StructuredDocumentation", + "src": "5535:58:18", + "text": " @dev returns true if the tokenId exists" + }, + "id": 7906, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenExists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7890, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 7906, + "src": "5619:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5619:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5618:17:18" + }, + "returnParameters": { + "id": 7894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7893, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7906, + "src": "5658:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7892, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5658:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5657:6:18" + }, + "scope": 9012, + "src": "5598:184:18", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7929, + "nodeType": "Block", + "src": "5932:142:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7914, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "5947:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 7915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5961:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5947:15:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7917, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5946:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7918, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "5968:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "33", + "id": 7919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5983:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "5968:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7921, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5967:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5946:39:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7926, + "nodeType": "IfStatement", + "src": "5942:81:18", + "trueBody": { + "id": 7925, + "nodeType": "Block", + "src": "5987:36:18", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 7923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6008:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7913, + "id": 7924, + "nodeType": "Return", + "src": "6001:11:18" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 7927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6039:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 7913, + "id": 7928, + "nodeType": "Return", + "src": "6032:12:18" + } + ] + }, + "documentation": { + "id": 7907, + "nodeType": "StructuredDocumentation", + "src": "5788:64:18", + "text": " @dev returns true if the tokenTypeId is valid" + }, + "id": 7930, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenTypeIdIsValid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7909, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 7930, + "src": "5885:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5885:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5884:19:18" + }, + "returnParameters": { + "id": 7913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7912, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7930, + "src": "5926:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7911, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5926:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5925:6:18" + }, + "scope": 9012, + "src": "5857:217:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7940, + "nodeType": "Block", + "src": "6202:52:18", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7936, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "6219:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 7937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "6219:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 7938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6219:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7935, + "id": 7939, + "nodeType": "Return", + "src": "6212:35:18" + } + ] + }, + "documentation": { + "id": 7931, + "nodeType": "StructuredDocumentation", + "src": "6080:55:18", + "text": " @dev returns number of unique tokens" + }, + "functionSelector": "5ddb368f", + "id": 7941, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNumOfUniqueTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7932, + "nodeType": "ParameterList", + "parameters": [], + "src": "6169:2:18" + }, + "returnParameters": { + "id": 7935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7934, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7941, + "src": "6193:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6193:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6192:9:18" + }, + "scope": 9012, + "src": "6140:114:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1685 + ], + "body": { + "id": 8031, + "nodeType": "Block", + "src": "6607:1267:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7963, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7944, + "src": "6644:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7964, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7946, + "src": "6654:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7965, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7948, + "src": "6660:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 7966, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "6664:3:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 7967, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7954, + "src": "6669:7:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 7968, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7956, + "src": "6678:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 7960, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "6617:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 7962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_beforeTokenTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1685, + "src": "6617:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 7969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6617:66:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7970, + "nodeType": "ExpressionStatement", + "src": "6617:66:18" + }, + { + "body": { + "id": 8029, + "nodeType": "Block", + "src": "6732:1136:18", + "statements": [ + { + "assignments": [ + 7983 + ], + "declarations": [ + { + "constant": false, + "id": 7983, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8029, + "src": "6747:32:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + }, + "typeName": { + "id": 7982, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7667, + "src": "6747:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 7989, + "initialValue": { + "baseExpression": { + "id": 7984, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "6782:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref)" + } + }, + "id": 7988, + "indexExpression": { + "baseExpression": { + "id": 7985, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "6796:3:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 7987, + "indexExpression": { + "id": 7986, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7972, + "src": "6800:1:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6796:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6782:21:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6747:56:18" + }, + { + "condition": { + "id": 7990, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "6881:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8028, + "nodeType": "IfStatement", + "src": "6877:981:18", + "trueBody": { + "id": 8027, + "nodeType": "Block", + "src": "6894:964:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7991, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7948, + "src": "6972:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 7994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6986:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6978:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6978:7:18", + "typeDescriptions": {} + } + }, + "id": 7995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6978:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6972:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7999, + "nodeType": "IfStatement", + "src": "6968:71:18", + "trueBody": { + "id": 7998, + "nodeType": "Block", + "src": "6990:49:18", + "statements": [ + { + "id": 7997, + "nodeType": "Continue", + "src": "7012:8:18" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8000, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7983, + "src": "7295:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7648, + "src": "7295:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "33", + "id": 8002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7316:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "7295:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8025, + "nodeType": "Block", + "src": "7585:259:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8019, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "7648:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8020, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7944, + "src": "7678:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8018, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "7640:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7640:47:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d69746564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e206973737565206175646974656420656d697373696f6e73", + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7713:90:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"" + }, + "value": "CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf130957a8fd04bf2a485999674096bcbb8799778244a790ae33406ca8f6b286", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions\"" + } + ], + "id": 8017, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7607:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7607:218:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8024, + "nodeType": "ExpressionStatement", + "src": "7607:218:18" + } + ] + }, + "id": 8026, + "nodeType": "IfStatement", + "src": "7291:553:18", + "trueBody": { + "id": 8016, + "nodeType": "Block", + "src": "7319:260:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8005, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7944, + "src": "7374:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 8006, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7619, + "src": "7386:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7374:20:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 8009, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "7406:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8010, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7944, + "src": "7426:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8008, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "7398:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7398:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7374:61:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d69746564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e7366657220746f6b656e73", + "id": 8013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7461:77:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"" + }, + "value": "CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fbcf54f134bb1dbe4d91054139856e19b9909e22a02e86f6f99913c2e29c8b4b", + "typeString": "literal_string \"CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens\"" + } + ], + "id": 8004, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7341:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7341:219:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8015, + "nodeType": "ExpressionStatement", + "src": "7341:219:18" + } + ] + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7975, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7972, + "src": "6711:1:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 7976, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7951, + "src": "6715:3:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 7977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6715:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6711:14:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8030, + "initializationExpression": { + "assignments": [ + 7972 + ], + "declarations": [ + { + "constant": false, + "id": 7972, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "6699:6:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7971, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6699:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7974, + "initialValue": { + "hexValue": "30", + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6708:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6699:10:18" + }, + "loopExpression": { + "expression": { + "id": 7980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6727:3:18", + "subExpression": { + "id": 7979, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7972, + "src": "6727:1:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7981, + "nodeType": "ExpressionStatement", + "src": "6727:3:18" + }, + "nodeType": "ForStatement", + "src": "6694:1174:18" + } + ] + }, + "documentation": { + "id": 7942, + "nodeType": "StructuredDocumentation", + "src": "6260:93:18", + "text": " @dev hook to prevent transfers from non-admin account if limitedMode is on" + }, + "id": 8032, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 7958, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6594:8:18" + }, + "parameters": { + "id": 7957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7944, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6397:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6397:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7946, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6423:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6423:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7948, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6445:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7947, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6445:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7951, + "mutability": "mutable", + "name": "ids", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6465:20:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 7949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6465:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7950, + "nodeType": "ArrayTypeName", + "src": "6465:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7954, + "mutability": "mutable", + "name": "amounts", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6495:24:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 7952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6495:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7953, + "nodeType": "ArrayTypeName", + "src": "6495:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7956, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 8032, + "src": "6529:17:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7955, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6529:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6387:165:18" + }, + "returnParameters": { + "id": 7959, + "nodeType": "ParameterList", + "parameters": [], + "src": "6607:0:18" + }, + "scope": 9012, + "src": "6358:1516:18", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 8070, + "nodeType": "Block", + "src": "8531:277:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8057, + "name": "issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8035, + "src": "8568:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8058, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8588:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8588:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 8060, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8037, + "src": "8612:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8061, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8039, + "src": "8637:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8062, + "name": "fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8041, + "src": "8659:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8063, + "name": "thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8043, + "src": "8681:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8064, + "name": "automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8045, + "src": "8703:19:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8065, + "name": "metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8047, + "src": "8736:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 8066, + "name": "manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8049, + "src": "8758:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 8067, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8051, + "src": "8780:11:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 8056, + "name": "_issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8409, + "src": "8548:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint8,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8548:253:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 8055, + "id": 8069, + "nodeType": "Return", + "src": "8541:260:18" + } + ] + }, + "documentation": { + "id": 8033, + "nodeType": "StructuredDocumentation", + "src": "7880:342:18", + "text": " @dev External function to mint an amount of a token\n Only authorized dealer of associated token type can call this function\n @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller\n should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4)" + }, + "functionSelector": "fd0c4a9a", + "id": 8071, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8054, + "modifierName": { + "id": 8053, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7874, + "src": "8520:10:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8520:10:18" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8035, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8251:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8251:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8037, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8275:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8036, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8275:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8039, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8302:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8302:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8041, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8328:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8328:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8043, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8354:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8354:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8045, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8380:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8380:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8047, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8417:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8046, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8417:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8049, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8449:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8048, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8449:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8051, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 8071, + "src": "8481:25:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8050, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8481:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8241:271:18" + }, + "returnParameters": { + "id": 8055, + "nodeType": "ParameterList", + "parameters": [], + "src": "8531:0:18" + }, + "scope": 9012, + "src": "8227:581:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8123, + "nodeType": "Block", + "src": "9367:452:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8096, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9400:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9400:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 8098, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7619, + "src": "9414:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9400:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8100, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9399:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 8102, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "9435:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 8103, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9455:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "9455:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8101, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "9427:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9427:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9399:67:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a69737375654f6e426568616c663a2063616c6c206d75737420636f6d652066726f6d2044414f206f722061646d696e", + "id": 8107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9480:55:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49", + "typeString": "literal_string \"CLM8::issueOnBehalf: call must come from DAO or admin\"" + }, + "value": "CLM8::issueOnBehalf: call must come from DAO or admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_027980ead4a5293de821ea7b1b725523b071719d3eda93334799af99eb3a6e49", + "typeString": "literal_string \"CLM8::issueOnBehalf: call must come from DAO or admin\"" + } + ], + "id": 8095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9378:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9378:167:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8109, + "nodeType": "ExpressionStatement", + "src": "9378:167:18" + }, + { + "expression": { + "arguments": [ + { + "id": 8111, + "name": "issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8074, + "src": "9583:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8112, + "name": "issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8076, + "src": "9603:6:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8113, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8078, + "src": "9623:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8114, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8080, + "src": "9648:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8115, + "name": "fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8082, + "src": "9670:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8116, + "name": "thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8084, + "src": "9692:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8117, + "name": "automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8086, + "src": "9714:19:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8118, + "name": "metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8088, + "src": "9747:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 8119, + "name": "manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8090, + "src": "9769:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 8120, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8092, + "src": "9791:11:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 8110, + "name": "_issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8409, + "src": "9563:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint8,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 8121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9563:249:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 8094, + "id": 8122, + "nodeType": "Return", + "src": "9556:256:18" + } + ] + }, + "documentation": { + "id": 8072, + "nodeType": "StructuredDocumentation", + "src": "8814:223:18", + "text": " @dev Issue function for DAO (on limited mode) or admin to manually pass issuer\n Must be called from Timelock contract through a successful proposal\n or by admin if limited mode is set to false" + }, + "functionSelector": "f000be98", + "id": 8124, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issueOnBehalf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8074, + "mutability": "mutable", + "name": "issuee", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9074:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9074:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8076, + "mutability": "mutable", + "name": "issuer", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9098:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9098:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8078, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9122:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8077, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9122:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8080, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9149:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9149:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8082, + "mutability": "mutable", + "name": "fromDate", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9175:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9175:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8084, + "mutability": "mutable", + "name": "thruDate", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9201:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8083, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9201:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8086, + "mutability": "mutable", + "name": "automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9227:27:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9227:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8088, + "mutability": "mutable", + "name": "metadata", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9264:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8087, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9264:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8090, + "mutability": "mutable", + "name": "manifest", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9296:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8089, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9296:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8092, + "mutability": "mutable", + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 8124, + "src": "9328:25:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8091, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9328:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "9064:295:18" + }, + "returnParameters": { + "id": 8094, + "nodeType": "ParameterList", + "parameters": [], + "src": "9367:0:18" + }, + "scope": 9012, + "src": "9042:777:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8408, + "nodeType": "Block", + "src": "10155:3367:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8149, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10206:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8148, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7930, + "src": "10187:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 8150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10187:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e76616c6964", + "id": 8151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10233:38:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba", + "typeString": "literal_string \"CLM8::_issue: tokenTypeId is invalid\"" + }, + "value": "CLM8::_issue: tokenTypeId is invalid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f86a2181a750c38fe320220bbb09ff4ad0f7ef7e279d4a54d38e0c9a572d55ba", + "typeString": "literal_string \"CLM8::_issue: tokenTypeId is invalid\"" + } + ], + "id": 8147, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10166:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10166:115:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8153, + "nodeType": "ExpressionStatement", + "src": "10166:115:18" + }, + { + "condition": { + "id": 8154, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "10296:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8246, + "nodeType": "Block", + "src": "11192:698:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8207, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "11210:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 8208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11226:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11210:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8219, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "11430:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 8220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11446:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11430:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8231, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "11656:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 8232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11672:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11656:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8243, + "nodeType": "IfStatement", + "src": "11652:228:18", + "trueBody": { + "id": 8242, + "nodeType": "Block", + "src": "11675:205:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8236, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "11730:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8237, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "11760:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8235, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11722:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11722:46:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f742061207265676973746572656420656d697373696f6e732061756469746f72", + "id": 8239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11790:57:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered emissions auditor\"" + }, + "value": "CLM8::_issue: issuer not a registered emissions auditor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9f6b5a6af0677b6c811ca17f6a49b477ec8466b5d0f1671b5f5bc0c6640e7312", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered emissions auditor\"" + } + ], + "id": 8234, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11693:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11693:172:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8241, + "nodeType": "ExpressionStatement", + "src": "11693:172:18" + } + ] + } + }, + "id": 8244, + "nodeType": "IfStatement", + "src": "11426:454:18", + "trueBody": { + "id": 8230, + "nodeType": "Block", + "src": "11449:197:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8224, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "11504:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8225, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "11530:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8223, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11496:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11496:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f7420612072656769737465726564206f6666736574206465616c6572", + "id": 8227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11560:53:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered offset dealer\"" + }, + "value": "CLM8::_issue: issuer not a registered offset dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5d62b5bf05e75686f342cac120b4e7404cb69fbea95d1a36e6163029b3098fe9", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered offset dealer\"" + } + ], + "id": 8222, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11467:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:164:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8229, + "nodeType": "ExpressionStatement", + "src": "11467:164:18" + } + ] + } + }, + "id": 8245, + "nodeType": "IfStatement", + "src": "11206:674:18", + "trueBody": { + "id": 8218, + "nodeType": "Block", + "src": "11229:191:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8212, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "11284:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8213, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "11307:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8211, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11276:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11276:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f69737375653a20697373756572206e6f742061207265676973746572656420524543206465616c6572", + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11337:50:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered REC dealer\"" + }, + "value": "CLM8::_issue: issuer not a registered REC dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e876e83d73ed9a0b11585da7b471981f624aaa4d4555b27dee2e11458f191e1a", + "typeString": "literal_string \"CLM8::_issue: issuer not a registered REC dealer\"" + } + ], + "id": 8210, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11247:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11247:158:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8217, + "nodeType": "ExpressionStatement", + "src": "11247:158:18" + } + ] + } + } + ] + }, + "id": 8247, + "nodeType": "IfStatement", + "src": "10292:1598:18", + "trueBody": { + "id": 8206, + "nodeType": "Block", + "src": "10309:877:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8155, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10327:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 8156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10343:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10327:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8158, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10348:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 8159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10364:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "10348:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10327:38:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8192, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10943:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 8193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10959:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "10943:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8204, + "nodeType": "IfStatement", + "src": "10939:237:18", + "trueBody": { + "id": 8203, + "nodeType": "Block", + "src": "10962:214:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8197, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "11017:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8198, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "11047:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8196, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "11009:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11009:46:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f742061207265676973746572656420656d697373696f6e732061756469746f72", + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11077:66:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796", + "typeString": "literal_string \"CLM8::_issue(limited): issuer not a registered emissions auditor\"" + }, + "value": "CLM8::_issue(limited): issuer not a registered emissions auditor" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dac47969290ef1fde5eac4635120776641215b638200271b6bee6d814ec24796", + "typeString": "literal_string \"CLM8::_issue(limited): issuer not a registered emissions auditor\"" + } + ], + "id": 8195, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10980:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10980:181:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8202, + "nodeType": "ExpressionStatement", + "src": "10980:181:18" + } + ] + } + }, + "id": 8205, + "nodeType": "IfStatement", + "src": "10323:853:18", + "trueBody": { + "id": 8191, + "nodeType": "Block", + "src": "10368:565:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10415:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10415:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 8165, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7619, + "src": "10429:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10415:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646572206e6f742074696d656c6f636b", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10459:48:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633", + "typeString": "literal_string \"CLM8::_issue(limited): msg.sender not timelock\"" + }, + "value": "CLM8::_issue(limited): msg.sender not timelock" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a80146e02a2f237dc272397bcd64f791ea5d857075fd54b52b8e662ccf218633", + "typeString": "literal_string \"CLM8::_issue(limited): msg.sender not timelock\"" + } + ], + "id": 8162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10386:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10386:139:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8169, + "nodeType": "ExpressionStatement", + "src": "10386:139:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8172, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "10580:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8173, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "10600:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8171, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10572:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10572:36:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f742061646d696e", + "id": 8175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10630:41:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb", + "typeString": "literal_string \"CLM8::_issue(limited): issuee not admin\"" + }, + "value": "CLM8::_issue(limited): issuee not admin" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dec8919b6f2b8be5c4a8bab9f20b9bffc284c792e17d615eda815e1f4b2b17fb", + "typeString": "literal_string \"CLM8::_issue(limited): issuee not admin\"" + } + ], + "id": 8170, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10543:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10543:146:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8177, + "nodeType": "ExpressionStatement", + "src": "10543:146:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8180, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "10744:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8181, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "10767:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8179, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10736:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10736:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 8184, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "10787:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8185, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "10813:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8183, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "10779:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10779:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10736:85:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a5f6973737565286c696d69746564293a2070726f706f736572206e6f7420612072656769737465726564206465616c6572", + "id": 8188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10843:57:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726", + "typeString": "literal_string \"CLM8::_issue(limited): proposer not a registered dealer\"" + }, + "value": "CLM8::_issue(limited): proposer not a registered dealer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6f17c75c3dc24439b1efc1ee8b1f47e47009faf5a181028a200ec10f4bc7b726", + "typeString": "literal_string \"CLM8::_issue(limited): proposer not a registered dealer\"" + } + ], + "id": 8178, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10707:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10707:211:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8190, + "nodeType": "ExpressionStatement", + "src": "10707:211:18" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 8248, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "11938:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 8250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "increment", + "nodeType": "MemberAccess", + "referencedDeclaration": 2350, + "src": "11938:28:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$2327_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer)" + } + }, + "id": 8251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11938:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8252, + "nodeType": "ExpressionStatement", + "src": "11938:30:18" + }, + { + "assignments": [ + 8254 + ], + "declarations": [ + { + "constant": false, + "id": 8254, + "mutability": "mutable", + "name": "tokenInfo", + "nodeType": "VariableDeclaration", + "scope": 8408, + "src": "12011:36:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + }, + "typeName": { + "id": 8253, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7667, + "src": "12011:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 8260, + "initialValue": { + "baseExpression": { + "id": 8255, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "12050:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref)" + } + }, + "id": 8259, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 8256, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "12064:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 8257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "12064:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 8258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12064:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12050:43:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12011:82:18" + }, + { + "expression": { + "id": 8267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8261, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12104:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "12104:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 8264, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "12124:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 8265, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "12124:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 8266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12124:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12104:48:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8268, + "nodeType": "ExpressionStatement", + "src": "12104:48:18" + }, + { + "expression": { + "id": 8273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8269, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12162:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7648, + "src": "12162:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8272, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "12186:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12162:36:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8274, + "nodeType": "ExpressionStatement", + "src": "12162:36:18" + }, + { + "expression": { + "id": 8279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8275, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12208:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "12208:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8278, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "12227:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12208:26:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8280, + "nodeType": "ExpressionStatement", + "src": "12208:26:18" + }, + { + "expression": { + "id": 8285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8281, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12244:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8283, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7650, + "src": "12244:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8284, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "12263:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12244:26:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8286, + "nodeType": "ExpressionStatement", + "src": "12244:26:18" + }, + { + "expression": { + "id": 8291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8287, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12280:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "fromDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7654, + "src": "12280:18:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8290, + "name": "_fromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8134, + "src": "12301:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12280:30:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8292, + "nodeType": "ExpressionStatement", + "src": "12280:30:18" + }, + { + "expression": { + "id": 8297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8293, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12320:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "thruDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7656, + "src": "12320:18:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8296, + "name": "_thruDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8136, + "src": "12341:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12320:30:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8298, + "nodeType": "ExpressionStatement", + "src": "12320:30:18" + }, + { + "expression": { + "id": 8303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8299, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12360:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8301, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "automaticRetireDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7660, + "src": "12360:29:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8302, + "name": "_automaticRetireDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8138, + "src": "12392:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12360:52:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8304, + "nodeType": "ExpressionStatement", + "src": "12360:52:18" + }, + { + "expression": { + "id": 8310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8305, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12422:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8307, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "dateCreated", + "nodeType": "MemberAccess", + "referencedDeclaration": 7658, + "src": "12422:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 8308, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "12446:5:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 8309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "12446:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12422:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8311, + "nodeType": "ExpressionStatement", + "src": "12422:39:18" + }, + { + "expression": { + "id": 8316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8312, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12471:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "metadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 7662, + "src": "12471:18:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8315, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8140, + "src": "12492:9:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12471:30:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 8317, + "nodeType": "ExpressionStatement", + "src": "12471:30:18" + }, + { + "expression": { + "id": 8322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8318, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12511:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8320, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "manifest", + "nodeType": "MemberAccess", + "referencedDeclaration": 7664, + "src": "12511:18:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8321, + "name": "_manifest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8142, + "src": "12532:9:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12511:30:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 8323, + "nodeType": "ExpressionStatement", + "src": "12511:30:18" + }, + { + "expression": { + "id": 8328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 8324, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12551:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 7666, + "src": "12551:21:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8327, + "name": "_description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8144, + "src": "12575:12:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "12551:36:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 8329, + "nodeType": "ExpressionStatement", + "src": "12551:36:18" + }, + { + "expression": { + "arguments": [ + { + "id": 8333, + "name": "_issuee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "12610:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 8334, + "name": "_numOfUniqueTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7669, + "src": "12619:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Counter_$2327_storage", + "typeString": "struct CountersUpgradeable.Counter storage ref" + } + }, + "id": 8335, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "current", + "nodeType": "MemberAccess", + "referencedDeclaration": 2338, + "src": "12619:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$2327_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$2327_storage_ptr_$", + "typeString": "function (struct CountersUpgradeable.Counter storage pointer) view returns (uint256)" + } + }, + "id": 8336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12619:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8337, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8132, + "src": "12649:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 8338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12660:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 8330, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "12598:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "12598:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 8339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12598:65:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8340, + "nodeType": "ExpressionStatement", + "src": "12598:65:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8341, + "name": "_tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "12722:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 8342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12738:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "12722:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8374, + "nodeType": "IfStatement", + "src": "12718:245:18", + "trueBody": { + "id": 8373, + "nodeType": "Block", + "src": "12741:222:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 8347, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12767:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8348, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "12767:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8349, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12785:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "12785:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8351, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8132, + "src": "12804:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8344, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "12755:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "12755:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 8352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12755:59:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8353, + "nodeType": "ExpressionStatement", + "src": "12755:59:18" + }, + { + "expression": { + "id": 8371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 8354, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "12828:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8359, + "indexExpression": { + "expression": { + "id": 8355, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12845:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8356, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "12845:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12828:35:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8360, + "indexExpression": { + "expression": { + "id": 8357, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12864:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "12864:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12828:53:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8369, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8132, + "src": "12942:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 8361, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "12884:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8364, + "indexExpression": { + "expression": { + "id": 8362, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12901:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "12901:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12884:35:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8367, + "indexExpression": { + "expression": { + "id": 8365, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "12920:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8366, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "12920:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12884:53:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "12884:57:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12884:68:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12828:124:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8372, + "nodeType": "ExpressionStatement", + "src": "12828:124:18" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 8376, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8132, + "src": "13062:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 8377, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "13085:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8380, + "indexExpression": { + "expression": { + "id": 8378, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13102:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8379, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "13102:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13085:35:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8383, + "indexExpression": { + "expression": { + "id": 8381, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13121:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8382, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "13121:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13085:53:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8384, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13152:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7646, + "src": "13152:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8386, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13183:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7648, + "src": "13183:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 8388, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13218:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7650, + "src": "13218:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8390, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13248:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuee", + "nodeType": "MemberAccess", + "referencedDeclaration": 7652, + "src": "13248:16:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8392, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13278:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8393, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fromDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7654, + "src": "13278:18:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8394, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13310:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "thruDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7656, + "src": "13310:18:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8396, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13342:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "automaticRetireDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 7660, + "src": "13342:29:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8398, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13385:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "dateCreated", + "nodeType": "MemberAccess", + "referencedDeclaration": 7658, + "src": "13385:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 8400, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13420:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8401, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "metadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 7662, + "src": "13420:18:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 8402, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13452:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8403, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "manifest", + "nodeType": "MemberAccess", + "referencedDeclaration": 7664, + "src": "13452:18:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 8404, + "name": "tokenInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8254, + "src": "13484:9:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8405, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "description", + "nodeType": "MemberAccess", + "referencedDeclaration": 7666, + "src": "13484:21:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 8375, + "name": "TokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7709, + "src": "13036:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint8_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,uint8,address,address,uint256,uint256,uint256,uint256,string memory,string memory,string memory)" + } + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13036:479:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8407, + "nodeType": "EmitStatement", + "src": "13031:484:18" + } + ] + }, + "id": 8409, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8126, + "mutability": "mutable", + "name": "_issuee", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9850:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9850:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8128, + "mutability": "mutable", + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9875:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9875:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8130, + "mutability": "mutable", + "name": "_tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9900:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8129, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9900:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8132, + "mutability": "mutable", + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9928:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8134, + "mutability": "mutable", + "name": "_fromDate", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9955:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9955:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8136, + "mutability": "mutable", + "name": "_thruDate", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "9982:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9982:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8138, + "mutability": "mutable", + "name": "_automaticRetireDate", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "10009:28:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10009:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8140, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "10047:23:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8139, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10047:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8142, + "mutability": "mutable", + "name": "_manifest", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "10080:23:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8141, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10080:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8144, + "mutability": "mutable", + "name": "_description", + "nodeType": "VariableDeclaration", + "scope": 8409, + "src": "10113:26:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8143, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10113:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "9840:305:18" + }, + "returnParameters": { + "id": 8146, + "nodeType": "ParameterList", + "parameters": [], + "src": "10155:0:18" + }, + "scope": 9012, + "src": "9825:3697:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8443, + "nodeType": "Block", + "src": "13807:217:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8423, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8414, + "src": "13837:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8422, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7906, + "src": "13825:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13825:20:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f74206578697374", + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13847:36:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22", + "typeString": "literal_string \"CLM8::mint: tokenId does not exist\"" + }, + "value": "CLM8::mint: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3175692cba4a63612bbc69d4e8d0afd91c83d20cccc2c52b6f3b4f13e2f04c22", + "typeString": "literal_string \"CLM8::mint: tokenId does not exist\"" + } + ], + "id": 8421, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13817:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13817:67:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8427, + "nodeType": "ExpressionStatement", + "src": "13817:67:18" + }, + { + "expression": { + "arguments": [ + { + "id": 8430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13902:12:18", + "subExpression": { + "id": 8429, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "13903:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b656e7320696e206c696d69746564206d6f6465", + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13916:52:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f", + "typeString": "literal_string \"CLM8::mint: cannot mint new tokens in limited mode\"" + }, + "value": "CLM8::mint: cannot mint new tokens in limited mode" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d22f1b3de4758a72f18b8058f35911d89440d461da96e267acf4260761c5e2f", + "typeString": "literal_string \"CLM8::mint: cannot mint new tokens in limited mode\"" + } + ], + "id": 8428, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13894:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13894:75:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8433, + "nodeType": "ExpressionStatement", + "src": "13894:75:18" + }, + { + "expression": { + "arguments": [ + { + "id": 8437, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8412, + "src": "13991:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8438, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8414, + "src": "13995:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8439, + "name": "quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8416, + "src": "14004:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 8440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 8434, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "13979:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 1394, + "src": "13979:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 8441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13979:38:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8442, + "nodeType": "ExpressionStatement", + "src": "13979:38:18" + } + ] + }, + "documentation": { + "id": 8410, + "nodeType": "StructuredDocumentation", + "src": "13528:174:18", + "text": " @dev mints more of an existing token\n @param to reciepient of token\n @param tokenId token to mint more of\n @param quantity amount to mint" + }, + "functionSelector": "156e29f6", + "id": 8444, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8419, + "modifierName": { + "id": 8418, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "13793:9:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13793:9:18" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8412, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 8444, + "src": "13721:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13721:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8414, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8444, + "src": "13733:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13733:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8416, + "mutability": "mutable", + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 8444, + "src": "13750:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13750:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13720:47:18" + }, + "returnParameters": { + "id": 8420, + "nodeType": "ParameterList", + "parameters": [], + "src": "13807:0:18" + }, + "scope": 9012, + "src": "13707:317:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8483, + "nodeType": "Block", + "src": "14261:387:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8454, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8447, + "src": "14291:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8453, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7906, + "src": "14279:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14279:20:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f6573206e6f74206578697374", + "id": 8456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14301:44:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961", + "typeString": "literal_string \"CLM8::getTokenType: tokenId does not exist\"" + }, + "value": "CLM8::getTokenType: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_49a5e514b0667a7de3141e112d061888a3cef41b47c200bbafb41e729cf72961", + "typeString": "literal_string \"CLM8::getTokenType: tokenId does not exist\"" + } + ], + "id": 8452, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14271:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14271:75:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8458, + "nodeType": "ExpressionStatement", + "src": "14271:75:18" + }, + { + "assignments": [ + 8460 + ], + "declarations": [ + { + "constant": false, + "id": 8460, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 8483, + "src": "14356:32:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + }, + "typeName": { + "id": 8459, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7667, + "src": "14356:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "id": 8464, + "initialValue": { + "baseExpression": { + "id": 8461, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "14391:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref)" + } + }, + "id": 8463, + "indexExpression": { + "id": 8462, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8447, + "src": "14405:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14391:22:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14356:57:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8465, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8460, + "src": "14428:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7648, + "src": "14428:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 8467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14449:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14428:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8472, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8460, + "src": "14524:5:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage pointer" + } + }, + "id": 8473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenTypeId", + "nodeType": "MemberAccess", + "referencedDeclaration": 7648, + "src": "14524:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 8474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14545:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14524:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8479, + "nodeType": "IfStatement", + "src": "14520:85:18", + "trueBody": { + "id": 8478, + "nodeType": "Block", + "src": "14548:57:18", + "statements": [ + { + "expression": { + "hexValue": "436172626f6e20456d697373696f6e73204f6666736574", + "id": 8476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14569:25:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4341f867864cabd004f45b09af8d0716f81939d42b6488ac4d53c7be4375f2c8", + "typeString": "literal_string \"Carbon Emissions Offset\"" + }, + "value": "Carbon Emissions Offset" + }, + "functionReturnParameters": 8451, + "id": 8477, + "nodeType": "Return", + "src": "14562:32:18" + } + ] + } + }, + "id": 8480, + "nodeType": "IfStatement", + "src": "14424:181:18", + "trueBody": { + "id": 8471, + "nodeType": "Block", + "src": "14452:62:18", + "statements": [ + { + "expression": { + "hexValue": "52656e657761626c6520456e65726779204365727469666963617465", + "id": 8469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14473:30:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_491ffda04c2fd3af4764451485fdf42eea413d5592b658373c8490f938ee7eaf", + "typeString": "literal_string \"Renewable Energy Certificate\"" + }, + "value": "Renewable Energy Certificate" + }, + "functionReturnParameters": 8451, + "id": 8470, + "nodeType": "Return", + "src": "14466:37:18" + } + ] + } + }, + { + "expression": { + "hexValue": "4175646974656420456d697373696f6e73", + "id": 8481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14621:19:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_046f3c60b998876753271db8209fbb3f30fc328b5a52d84872c0f1bfc6a7cd27", + "typeString": "literal_string \"Audited Emissions\"" + }, + "value": "Audited Emissions" + }, + "functionReturnParameters": 8451, + "id": 8482, + "nodeType": "Return", + "src": "14614:26:18" + } + ] + }, + "documentation": { + "id": 8445, + "nodeType": "StructuredDocumentation", + "src": "14030:121:18", + "text": " @dev returns the token name for the given token as a string value\n @param tokenId token to check" + }, + "functionSelector": "76aed2e1", + "id": 8484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8447, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8484, + "src": "14178:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14178:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14177:17:18" + }, + "returnParameters": { + "id": 8451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8450, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8484, + "src": "14242:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8449, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14242:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14241:15:18" + }, + "scope": 9012, + "src": "14156:492:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8511, + "nodeType": "Block", + "src": "14880:185:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8496, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8489, + "src": "14910:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8495, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7906, + "src": "14898:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14898:20:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b656e496420646f6573206e6f74206578697374", + "id": 8498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14920:53:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e", + "typeString": "literal_string \"CLM8::getTokenRetiredAmount: tokenId does not exist\"" + }, + "value": "CLM8::getTokenRetiredAmount: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_be6225fb118e0cf17287ed8c59a07d446aeb37b4d3d019f824bfa04f1c30594e", + "typeString": "literal_string \"CLM8::getTokenRetiredAmount: tokenId does not exist\"" + } + ], + "id": 8494, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14890:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14890:84:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8500, + "nodeType": "ExpressionStatement", + "src": "14890:84:18" + }, + { + "assignments": [ + 8502 + ], + "declarations": [ + { + "constant": false, + "id": 8502, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 8511, + "src": "14984:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14984:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8508, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 8503, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "15001:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8505, + "indexExpression": { + "id": 8504, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8489, + "src": "15018:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15001:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8507, + "indexExpression": { + "id": 8506, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8487, + "src": "15027:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15001:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14984:51:18" + }, + { + "expression": { + "id": 8509, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8502, + "src": "15052:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8493, + "id": 8510, + "nodeType": "Return", + "src": "15045:13:18" + } + ] + }, + "documentation": { + "id": 8485, + "nodeType": "StructuredDocumentation", + "src": "14654:98:18", + "text": " @dev returns the retired amount on a token\n @param tokenId token to check" + }, + "functionSelector": "a0d975a7", + "id": 8512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenRetiredAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8487, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8512, + "src": "14788:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14788:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8489, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8512, + "src": "14805:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14805:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14787:34:18" + }, + "returnParameters": { + "id": 8493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8492, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8512, + "src": "14867:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14867:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14866:9:18" + }, + "scope": 9012, + "src": "14757:308:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8575, + "nodeType": "Block", + "src": "15375:463:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8524, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15405:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8523, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7906, + "src": "15393:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15393:20:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206578697374", + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15415:38:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af", + "typeString": "literal_string \"CLM8::retire: tokenId does not exist\"" + }, + "value": "CLM8::retire: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30333e2bb7e8c03e06cef8c0f23d8a2a0fd4c4ea5501e1930071fdc19db4a6af", + "typeString": "literal_string \"CLM8::retire: tokenId does not exist\"" + } + ], + "id": 8522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15385:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15385:69:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8528, + "nodeType": "ExpressionStatement", + "src": "15385:69:18" + }, + { + "expression": { + "arguments": [ + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8530, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8517, + "src": "15474:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 8533, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15500:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15500:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 8535, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15512:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8531, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "15484:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 941, + "src": "15484:15:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 8536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15484:36:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15474:46:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8538, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15473:48:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c61626c652062616c616e636520746f20726574697265", + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15523:54:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2", + "typeString": "literal_string \"CLM8::retire: not enough available balance to retire\"" + }, + "value": "CLM8::retire: not enough available balance to retire" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_66357a6d5ff716e85ee4923532add7e7faea2fe8c0ef0a64e2e97c29c925efd2", + "typeString": "literal_string \"CLM8::retire: not enough available balance to retire\"" + } + ], + "id": 8529, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15464:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15464:115:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8541, + "nodeType": "ExpressionStatement", + "src": "15464:115:18" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 8545, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15602:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15602:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 8547, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15614:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8548, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8517, + "src": "15623:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8542, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "15590:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 1571, + "src": "15590:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 8549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15590:40:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8550, + "nodeType": "ExpressionStatement", + "src": "15590:40:18" + }, + { + "expression": { + "id": 8566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 8551, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "15640:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8555, + "indexExpression": { + "id": 8552, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15657:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15640:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8556, + "indexExpression": { + "expression": { + "id": 8553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15666:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15666:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15640:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8564, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8517, + "src": "15722:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "baseExpression": { + "id": 8557, + "name": "_retiredBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "15680:16:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 8559, + "indexExpression": { + "id": 8558, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15697:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15680:25:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 8562, + "indexExpression": { + "expression": { + "id": 8560, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15706:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15706:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15680:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 576, + "src": "15680:41:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15680:49:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15640:89:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8567, + "nodeType": "ExpressionStatement", + "src": "15640:89:18" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 8569, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15770:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "15770:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 8571, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8515, + "src": "15794:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8572, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8517, + "src": "15815:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8568, + "name": "TokenRetired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7717, + "src": "15744:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 8573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15744:87:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8574, + "nodeType": "EmitStatement", + "src": "15739:92:18" + } + ] + }, + "documentation": { + "id": 8513, + "nodeType": "StructuredDocumentation", + "src": "15071:202:18", + "text": " @dev sets the token to the retire state to disable transfers, mints and burns\n @param tokenId token to set in pause state\n Only contract owner can pause or resume tokens" + }, + "functionSelector": "293a7f2e", + "id": 8576, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8520, + "modifierName": { + "id": 8519, + "name": "consumerOrDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7837, + "src": "15358:16:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15358:16:18" + } + ], + "name": "retire", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8515, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8576, + "src": "15303:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15303:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8517, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 8576, + "src": "15328:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15328:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15293:55:18" + }, + "returnParameters": { + "id": 8521, + "nodeType": "ParameterList", + "parameters": [], + "src": "15375:0:18" + }, + "scope": 9012, + "src": "15278:560:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8615, + "nodeType": "Block", + "src": "16035:309:18", + "statements": [ + { + "assignments": [ + 8585 + ], + "declarations": [ + { + "constant": false, + "id": 8585, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 8615, + "src": "16045:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8584, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16045:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8590, + "initialValue": { + "arguments": [ + { + "id": 8587, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "16072:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8588, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8579, + "src": "16095:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8586, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16064:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16064:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16045:58:18" + }, + { + "assignments": [ + 8592 + ], + "declarations": [ + { + "constant": false, + "id": 8592, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 8615, + "src": "16113:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8591, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16113:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8597, + "initialValue": { + "arguments": [ + { + "id": 8594, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "16140:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8595, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8579, + "src": "16166:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8593, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16132:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16132:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16113:61:18" + }, + { + "assignments": [ + 8599 + ], + "declarations": [ + { + "constant": false, + "id": 8599, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 8615, + "src": "16184:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8598, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16184:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8604, + "initialValue": { + "arguments": [ + { + "id": 8601, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "16210:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8602, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8579, + "src": "16240:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8600, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16202:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16202:46:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16184:64:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8605, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8585, + "src": "16262:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 8606, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8592, + "src": "16277:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16262:26:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 8608, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8599, + "src": "16292:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16262:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8612, + "nodeType": "IfStatement", + "src": "16258:57:18", + "trueBody": { + "expression": { + "hexValue": "74727565", + "id": 8610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16311:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 8583, + "id": 8611, + "nodeType": "Return", + "src": "16304:11:18" + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 8613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16332:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 8583, + "id": 8614, + "nodeType": "Return", + "src": "16325:12:18" + } + ] + }, + "documentation": { + "id": 8577, + "nodeType": "StructuredDocumentation", + "src": "15844:114:18", + "text": " @dev returns true if Dealer's account is registered\n @param account address of the dealer" + }, + "functionSelector": "69f7ef44", + "id": 8616, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDealerRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8579, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8616, + "src": "15991:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15990:17:18" + }, + "returnParameters": { + "id": 8583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8582, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8616, + "src": "16029:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8581, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16029:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16028:6:18" + }, + "scope": 9012, + "src": "15963:381:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8629, + "nodeType": "Block", + "src": "16546:61:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8625, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "16571:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8626, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8619, + "src": "16592:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8624, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "16563:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16563:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 8623, + "id": 8628, + "nodeType": "Return", + "src": "16556:44:18" + } + ] + }, + "documentation": { + "id": 8617, + "nodeType": "StructuredDocumentation", + "src": "16350:117:18", + "text": " @dev returns true if Consumers's account is registered\n @param account address of the dealer" + }, + "functionSelector": "33781a0e", + "id": 8630, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isConsumerRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8619, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8630, + "src": "16502:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16502:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16501:17:18" + }, + "returnParameters": { + "id": 8623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8622, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8630, + "src": "16540:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8621, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16540:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16539:6:18" + }, + "scope": 9012, + "src": "16472:135:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8647, + "nodeType": "Block", + "src": "16829:86:18", + "statements": [ + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8639, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8633, + "src": "16866:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8638, + "name": "isDealerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8616, + "src": "16847:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 8640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16847:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 8642, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8633, + "src": "16899:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8641, + "name": "isConsumerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8630, + "src": "16878:20:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 8643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16878:29:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16847:60:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8645, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16846:62:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 8637, + "id": 8646, + "nodeType": "Return", + "src": "16839:69:18" + } + ] + }, + "documentation": { + "id": 8631, + "nodeType": "StructuredDocumentation", + "src": "16613:138:18", + "text": " @dev returns true if Consumers's or Dealer's account is registered\n @param account address of the consumer/dealer" + }, + "id": 8648, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDealerOrConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8633, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8648, + "src": "16784:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16784:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16783:17:18" + }, + "returnParameters": { + "id": 8637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8636, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8648, + "src": "16823:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8635, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16823:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16822:6:18" + }, + "scope": 9012, + "src": "16756:159:18", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 8706, + "nodeType": "Block", + "src": "17146:422:18", + "statements": [ + { + "assignments": [ + 8665 + ], + "declarations": [ + { + "constant": false, + "id": 8665, + "mutability": "mutable", + "name": "isAdmin", + "nodeType": "VariableDeclaration", + "scope": 8706, + "src": "17156:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8664, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17156:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8670, + "initialValue": { + "arguments": [ + { + "id": 8667, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "17179:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8668, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8651, + "src": "17199:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8666, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17171:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17171:36:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17156:51:18" + }, + { + "assignments": [ + 8672 + ], + "declarations": [ + { + "constant": false, + "id": 8672, + "mutability": "mutable", + "name": "isRecDealer", + "nodeType": "VariableDeclaration", + "scope": 8706, + "src": "17217:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8671, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17217:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8677, + "initialValue": { + "arguments": [ + { + "id": 8674, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "17244:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8675, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8651, + "src": "17267:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8673, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17236:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17236:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17217:58:18" + }, + { + "assignments": [ + 8679 + ], + "declarations": [ + { + "constant": false, + "id": 8679, + "mutability": "mutable", + "name": "isCeoDealer", + "nodeType": "VariableDeclaration", + "scope": 8706, + "src": "17285:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8678, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17285:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8684, + "initialValue": { + "arguments": [ + { + "id": 8681, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "17312:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8682, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8651, + "src": "17338:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8680, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17304:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17304:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17285:61:18" + }, + { + "assignments": [ + 8686 + ], + "declarations": [ + { + "constant": false, + "id": 8686, + "mutability": "mutable", + "name": "isAeDealer", + "nodeType": "VariableDeclaration", + "scope": 8706, + "src": "17356:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8685, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17356:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8691, + "initialValue": { + "arguments": [ + { + "id": 8688, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "17382:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8689, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8651, + "src": "17412:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8687, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17374:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17374:46:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17356:64:18" + }, + { + "assignments": [ + 8693 + ], + "declarations": [ + { + "constant": false, + "id": 8693, + "mutability": "mutable", + "name": "isConsumer", + "nodeType": "VariableDeclaration", + "scope": 8706, + "src": "17430:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8692, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17430:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 8698, + "initialValue": { + "arguments": [ + { + "id": 8695, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "17456:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8696, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8651, + "src": "17477:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8694, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "17448:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17448:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17430:55:18" + }, + { + "expression": { + "components": [ + { + "id": 8699, + "name": "isAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8665, + "src": "17503:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8700, + "name": "isRecDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8672, + "src": "17512:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8701, + "name": "isCeoDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8679, + "src": "17525:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8702, + "name": "isAeDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8686, + "src": "17538:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8703, + "name": "isConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8693, + "src": "17550:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8704, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17502:59:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$_t_bool_$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool,bool,bool,bool)" + } + }, + "functionReturnParameters": 8663, + "id": 8705, + "nodeType": "Return", + "src": "17495:66:18" + } + ] + }, + "documentation": { + "id": 8649, + "nodeType": "StructuredDocumentation", + "src": "16921:132:18", + "text": " @dev Helper function for returning tuple of bools of role membership\n @param account address to check roles" + }, + "functionSelector": "ce6ccfaf", + "id": 8707, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoles", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8651, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17076:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17076:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17075:17:18" + }, + "returnParameters": { + "id": 8663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8654, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17116:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8653, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17116:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17122:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17122:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8658, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17128:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8657, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17128:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8660, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17134:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8659, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17134:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8707, + "src": "17140:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17140:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "17115:30:18" + }, + "scope": 9012, + "src": "17058:510:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8759, + "nodeType": "Block", + "src": "17849:551:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8719, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8712, + "src": "17886:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8718, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7930, + "src": "17867:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 8720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17867:31:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a72656769737465724465616c65723a20746f6b656e54797065496420646f6573206e6f74206578697374", + "id": 8721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17900:50:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472", + "typeString": "literal_string \"CLM8::registerDealer: tokenTypeId does not exist\"" + }, + "value": "CLM8::registerDealer: tokenTypeId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_92b1859612b02a849bff381ce7b554688df61f88537490eb94438ad196998472", + "typeString": "literal_string \"CLM8::registerDealer: tokenTypeId does not exist\"" + } + ], + "id": 8717, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17859:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17859:92:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8723, + "nodeType": "ExpressionStatement", + "src": "17859:92:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8724, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8712, + "src": "17965:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 8725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17980:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "17965:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8733, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8712, + "src": "18059:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 8734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18074:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "18059:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8747, + "nodeType": "Block", + "src": "18152:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8743, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "18176:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8744, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8710, + "src": "18206:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8742, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18166:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18166:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8746, + "nodeType": "ExpressionStatement", + "src": "18166:48:18" + } + ] + }, + "id": 8748, + "nodeType": "IfStatement", + "src": "18055:170:18", + "trueBody": { + "id": 8741, + "nodeType": "Block", + "src": "18077:69:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8737, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "18101:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8738, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8710, + "src": "18127:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8736, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18091:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:44:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8740, + "nodeType": "ExpressionStatement", + "src": "18091:44:18" + } + ] + } + }, + "id": 8749, + "nodeType": "IfStatement", + "src": "17961:264:18", + "trueBody": { + "id": 8732, + "nodeType": "Block", + "src": "17983:66:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8728, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "18007:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8729, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8710, + "src": "18030:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8727, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "17997:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17997:41:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8731, + "nodeType": "ExpressionStatement", + "src": "17997:41:18" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8751, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7624, + "src": "18326:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8752, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8710, + "src": "18345:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8750, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18316:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18316:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8754, + "nodeType": "ExpressionStatement", + "src": "18316:37:18" + }, + { + "eventCall": { + "arguments": [ + { + "id": 8756, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8710, + "src": "18385:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8755, + "name": "RegisteredDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7729, + "src": "18368:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 8757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18368:25:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8758, + "nodeType": "EmitStatement", + "src": "18363:30:18" + } + ] + }, + "documentation": { + "id": 8708, + "nodeType": "StructuredDocumentation", + "src": "17574:171:18", + "text": " @dev Only contract owner can register Dealers\n @param account address of the dealer to register\n Only registered Dealers can transfer tokens" + }, + "functionSelector": "31aa4b20", + "id": 8760, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8715, + "modifierName": { + "id": 8714, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "17835:9:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17835:9:18" + } + ], + "name": "registerDealer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8710, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8760, + "src": "17774:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17774:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8712, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 8760, + "src": "17791:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8711, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "17791:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "17773:36:18" + }, + "returnParameters": { + "id": 8716, + "nodeType": "ParameterList", + "parameters": [], + "src": "17849:0:18" + }, + "scope": 9012, + "src": "17750:650:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8789, + "nodeType": "Block", + "src": "18612:267:18", + "statements": [ + { + "condition": { + "id": 8768, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "18626:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8779, + "nodeType": "IfStatement", + "src": "18622:160:18", + "trueBody": { + "id": 8778, + "nodeType": "Block", + "src": "18639:143:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8771, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "18669:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 8772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18689:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "18689:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8770, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "18661:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18661:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d657273", + "id": 8775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18702:68:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad", + "typeString": "literal_string \"CLM8::registerConsumer(limited): only admin can register consumers\"" + }, + "value": "CLM8::registerConsumer(limited): only admin can register consumers" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d012b03913dbafdeab06dc3cff55382e05ba1613866529ad1c56101814d92ad", + "typeString": "literal_string \"CLM8::registerConsumer(limited): only admin can register consumers\"" + } + ], + "id": 8769, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18653:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18653:118:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8777, + "nodeType": "ExpressionStatement", + "src": "18653:118:18" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8781, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "18801:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8782, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8763, + "src": "18822:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8780, + "name": "grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "18791:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18791:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8784, + "nodeType": "ExpressionStatement", + "src": "18791:39:18" + }, + { + "eventCall": { + "arguments": [ + { + "id": 8786, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8763, + "src": "18864:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8785, + "name": "RegisteredConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7721, + "src": "18845:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 8787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18845:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8788, + "nodeType": "EmitStatement", + "src": "18840:32:18" + } + ] + }, + "documentation": { + "id": 8761, + "nodeType": "StructuredDocumentation", + "src": "18406:138:18", + "text": " @dev returns true if Consumer's account is registered for the given token\n @param account address of the consumer" + }, + "functionSelector": "44b22fdd", + "id": 8790, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8766, + "modifierName": { + "id": 8765, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7874, + "src": "18601:10:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18601:10:18" + } + ], + "name": "registerConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8763, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8790, + "src": "18575:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18575:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18574:17:18" + }, + "returnParameters": { + "id": 8767, + "nodeType": "ParameterList", + "parameters": [], + "src": "18612:0:18" + }, + "scope": 9012, + "src": "18549:330:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8854, + "nodeType": "Block", + "src": "19106:634:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8802, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8795, + "src": "19143:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8801, + "name": "tokenTypeIdIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7930, + "src": "19124:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 8803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19124:31:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797065496420646f6573206e6f74206578697374", + "id": 8804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19157:52:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3", + "typeString": "literal_string \"CLM8::unregisterDealer: tokenTypeId does not exist\"" + }, + "value": "CLM8::unregisterDealer: tokenTypeId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38d15fd88f252be12a6e97f72dde57126777ac3dd32b0e40c44a34ba9f2d12f3", + "typeString": "literal_string \"CLM8::unregisterDealer: tokenTypeId does not exist\"" + } + ], + "id": 8800, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19116:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19116:94:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8806, + "nodeType": "ExpressionStatement", + "src": "19116:94:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8807, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8795, + "src": "19224:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 8808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19239:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "19224:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8818, + "name": "tokenTypeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8795, + "src": "19325:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "19325:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8836, + "nodeType": "Block", + "src": "19425:80:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8832, + "name": "REGISTERED_EMISSIONS_AUDITOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7639, + "src": "19456:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8833, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19486:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 8829, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19439:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19439:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19439:55:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8835, + "nodeType": "ExpressionStatement", + "src": "19439:55:18" + } + ] + }, + "id": 8837, + "nodeType": "IfStatement", + "src": "19321:184:18", + "trueBody": { + "id": 8828, + "nodeType": "Block", + "src": "19343:76:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8824, + "name": "REGISTERED_OFFSET_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7634, + "src": "19374:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8825, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19400:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 8821, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19357:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19357:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19357:51:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8827, + "nodeType": "ExpressionStatement", + "src": "19357:51:18" + } + ] + } + }, + "id": 8838, + "nodeType": "IfStatement", + "src": "19220:285:18", + "trueBody": { + "id": 8817, + "nodeType": "Block", + "src": "19242:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8813, + "name": "REGISTERED_REC_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7629, + "src": "19273:21:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8814, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19296:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 8810, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "19256:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "19256:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19256:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8816, + "nodeType": "ExpressionStatement", + "src": "19256:48:18" + } + ] + } + }, + { + "condition": { + "id": 8842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19598:28:18", + "subExpression": { + "arguments": [ + { + "id": 8840, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19618:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8839, + "name": "isDealerRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8616, + "src": "19599:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 8841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19599:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8849, + "nodeType": "IfStatement", + "src": "19594:97:18", + "trueBody": { + "id": 8848, + "nodeType": "Block", + "src": "19628:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 8844, + "name": "REGISTERED_DEALER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7624, + "src": "19653:17:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8845, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19672:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8843, + "name": "revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "19642:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19642:38:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8847, + "nodeType": "ExpressionStatement", + "src": "19642:38:18" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 8851, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8793, + "src": "19725:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8850, + "name": "UnregisteredDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "19706:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 8852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19706:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8853, + "nodeType": "EmitStatement", + "src": "19701:32:18" + } + ] + }, + "documentation": { + "id": 8791, + "nodeType": "StructuredDocumentation", + "src": "18885:115:18", + "text": " @dev Only contract owner can unregister Dealers\n @param account address to be unregistered" + }, + "functionSelector": "e2e564f2", + "id": 8855, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8798, + "modifierName": { + "id": 8797, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "19092:9:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "19092:9:18" + } + ], + "name": "unregisterDealer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8793, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8855, + "src": "19031:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19031:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8795, + "mutability": "mutable", + "name": "tokenTypeId", + "nodeType": "VariableDeclaration", + "scope": 8855, + "src": "19048:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8794, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "19048:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "19030:36:18" + }, + "returnParameters": { + "id": 8799, + "nodeType": "ParameterList", + "parameters": [], + "src": "19106:0:18" + }, + "scope": 9012, + "src": "19005:735:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8886, + "nodeType": "Block", + "src": "19933:280:18", + "statements": [ + { + "condition": { + "id": 8863, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "19947:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8874, + "nodeType": "IfStatement", + "src": "19943:164:18", + "trueBody": { + "id": 8873, + "nodeType": "Block", + "src": "19960:147:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8866, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "19990:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 8867, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20010:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "20010:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8865, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "19982:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 8869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19982:39:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a756e7265676973746572436f6e73756d6572286c696d69746564293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e73756d657273", + "id": 8870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20023:72:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2", + "typeString": "literal_string \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\"" + }, + "value": "CLM8::unregisterConsumer(limited): only admin can unregister consumers" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3a9cd7d6fe77d6ee4e14b0717982a2cfd40bf47ef975b87f7e05a46f6b7bcea2", + "typeString": "literal_string \"CLM8::unregisterConsumer(limited): only admin can unregister consumers\"" + } + ], + "id": 8864, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19974:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19974:122:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8872, + "nodeType": "ExpressionStatement", + "src": "19974:122:18" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8878, + "name": "REGISTERED_CONSUMER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "20133:19:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8879, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8858, + "src": "20154:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 8875, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "20116:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "revokeRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 193, + "src": "20116:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 8880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20116:46:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8881, + "nodeType": "ExpressionStatement", + "src": "20116:46:18" + }, + { + "eventCall": { + "arguments": [ + { + "id": 8883, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8858, + "src": "20198:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8882, + "name": "UnregisteredConsumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7725, + "src": "20177:20:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 8884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20177:29:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8885, + "nodeType": "EmitStatement", + "src": "20172:34:18" + } + ] + }, + "documentation": { + "id": 8856, + "nodeType": "StructuredDocumentation", + "src": "19746:117:18", + "text": " @dev Only contract owner can unregister Consumers\n @param account address to be unregistered" + }, + "functionSelector": "53dbe982", + "id": 8887, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8861, + "modifierName": { + "id": 8860, + "name": "onlyDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7874, + "src": "19922:10:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "19922:10:18" + } + ], + "name": "unregisterConsumer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8858, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8887, + "src": "19896:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19896:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "19895:17:18" + }, + "returnParameters": { + "id": 8862, + "nodeType": "ParameterList", + "parameters": [], + "src": "19933:0:18" + }, + "scope": 9012, + "src": "19868:345:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8926, + "nodeType": "Block", + "src": "20718:255:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 8901, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8892, + "src": "20748:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8900, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7906, + "src": "20736:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20736:20:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f74206578697374", + "id": 8903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20758:40:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a", + "typeString": "literal_string \"CLM8::transfer: tokenId does not exist\"" + }, + "value": "CLM8::transfer: tokenId does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9c43ccc8b584f02ffbbff75c86a6253d09d36344b82179e96f7217067a7d4f2a", + "typeString": "literal_string \"CLM8::transfer: tokenId does not exist\"" + } + ], + "id": 8899, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20728:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20728:71:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8905, + "nodeType": "ExpressionStatement", + "src": "20728:71:18" + }, + { + "expression": { + "arguments": [ + { + "components": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20818:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "20818:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8909, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8890, + "src": "20832:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20818:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8911, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20817:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "434c4d383a3a7472616e736665723a2073656e64657220616e642072656365697665722063616e6e6f74206265207468652073616d65", + "id": 8912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20837:56:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1", + "typeString": "literal_string \"CLM8::transfer: sender and receiver cannot be the same\"" + }, + "value": "CLM8::transfer: sender and receiver cannot be the same" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8829b174cb33a13572f6e263f0892a756c3ba7968b8eba47df2520a562b90ab1", + "typeString": "literal_string \"CLM8::transfer: sender and receiver cannot be the same\"" + } + ], + "id": 8906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20809:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20809:85:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8914, + "nodeType": "ExpressionStatement", + "src": "20809:85:18" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 8918, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20927:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "20927:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 8920, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8890, + "src": "20939:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8921, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8892, + "src": "20943:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8922, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8894, + "src": "20952:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30783030", + "id": 8923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20959:6:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", + "typeString": "literal_string \"0x00\"" + }, + "value": "0x00" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4", + "typeString": "literal_string \"0x00\"" + } + ], + "expression": { + "id": 8915, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "20904:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1163, + "src": "20904:22:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,uint256,bytes memory)" + } + }, + "id": 8924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20904:62:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8925, + "nodeType": "ExpressionStatement", + "src": "20904:62:18" + } + ] + }, + "documentation": { + "id": 8888, + "nodeType": "StructuredDocumentation", + "src": "20219:376:18", + "text": " @dev transfers the value to the 'to' account for tokenId\n @param to recipient address\n @param tokenId tokenId for the transfer\n @param value amount of transfer\n Transfer can start only when both parties are registered and the token is not paused\n Note: Token holders can arbitrarily call safeTransferFrom() without these checks" + }, + "functionSelector": "095bcdb6", + "id": 8927, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8897, + "modifierName": { + "id": 8896, + "name": "consumerOrDealer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7837, + "src": "20701:16:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20701:16:18" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8890, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 8927, + "src": "20627:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8889, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20627:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8892, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8927, + "src": "20647:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20647:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8894, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 8927, + "src": "20672:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20672:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20617:74:18" + }, + "returnParameters": { + "id": 8898, + "nodeType": "ParameterList", + "parameters": [], + "src": "20718:0:18" + }, + "scope": 9012, + "src": "20600:373:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8938, + "nodeType": "Block", + "src": "21052:37:18", + "statements": [ + { + "expression": { + "id": 8936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8934, + "name": "timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7619, + "src": "21062:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8935, + "name": "_timelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8929, + "src": "21073:9:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21062:20:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8937, + "nodeType": "ExpressionStatement", + "src": "21062:20:18" + } + ] + }, + "functionSelector": "bdacb303", + "id": 8939, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 8932, + "modifierName": { + "id": 8931, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "21042:9:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21042:9:18" + } + ], + "name": "setTimelock", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8929, + "mutability": "mutable", + "name": "_timelock", + "nodeType": "VariableDeclaration", + "scope": 8939, + "src": "21009:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21009:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "20999:33:18" + }, + "returnParameters": { + "id": 8933, + "nodeType": "ParameterList", + "parameters": [], + "src": "21052:0:18" + }, + "scope": 9012, + "src": "20979:110:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8970, + "nodeType": "Block", + "src": "21230:179:18", + "statements": [ + { + "assignments": [ + 8951 + ], + "declarations": [ + { + "constant": false, + "id": 8951, + "mutability": "mutable", + "name": "available", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "21240:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21240:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8957, + "initialValue": { + "arguments": [ + { + "id": 8954, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8941, + "src": "21276:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8955, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8943, + "src": "21285:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8952, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "21260:5:18", + "typeDescriptions": { + "typeIdentifier": "t_super$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract super NetEmissionsTokenNetworkV2" + } + }, + "id": 8953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 941, + "src": "21260:15:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 8956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21260:33:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21240:53:18" + }, + { + "assignments": [ + 8959 + ], + "declarations": [ + { + "constant": false, + "id": 8959, + "mutability": "mutable", + "name": "retired", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "21303:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21303:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8965, + "initialValue": { + "arguments": [ + { + "id": 8962, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8941, + "src": "21348:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8963, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8943, + "src": "21357:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8960, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21321:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NetEmissionsTokenNetworkV2_$9012", + "typeString": "contract NetEmissionsTokenNetworkV2" + } + }, + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenRetiredAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 8512, + "src": "21321:26:18", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view external returns (uint256)" + } + }, + "id": 8964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21321:44:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21303:62:18" + }, + { + "expression": { + "components": [ + { + "id": 8966, + "name": "available", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8951, + "src": "21383:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8967, + "name": "retired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8959, + "src": "21394:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8968, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21382:20:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8949, + "id": 8969, + "nodeType": "Return", + "src": "21375:27:18" + } + ] + }, + "functionSelector": "7f157c9b", + "id": 8971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAvailableAndRetired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8941, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "21127:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21127:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8943, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "21144:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21144:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21126:34:18" + }, + "returnParameters": { + "id": 8949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "21208:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21208:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8948, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "21217:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21217:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21207:18:18" + }, + "scope": 9012, + "src": "21095:314:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8984, + "nodeType": "Block", + "src": "21573:53:18", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 8979, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "21590:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref)" + } + }, + "id": 8981, + "indexExpression": { + "id": 8980, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8974, + "src": "21604:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21590:22:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref" + } + }, + "id": 8982, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7650, + "src": "21590:29:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8978, + "id": 8983, + "nodeType": "Return", + "src": "21583:36:18" + } + ] + }, + "documentation": { + "id": 8972, + "nodeType": "StructuredDocumentation", + "src": "21415:57:18", + "text": " @dev returns issuer of a given tokenId" + }, + "functionSelector": "92089c46", + "id": 8985, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8974, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8985, + "src": "21496:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21496:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21495:17:18" + }, + "returnParameters": { + "id": 8978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8977, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8985, + "src": "21560:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8976, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21560:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "21559:9:18" + }, + "scope": 9012, + "src": "21477:149:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 8997, + "nodeType": "Block", + "src": "21874:46:18", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 8993, + "name": "_tokenDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "21891:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CarbonTokenDetails_$7667_storage_$", + "typeString": "mapping(uint256 => struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref)" + } + }, + "id": 8995, + "indexExpression": { + "id": 8994, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8988, + "src": "21905:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21891:22:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails storage ref" + } + }, + "functionReturnParameters": 8992, + "id": 8996, + "nodeType": "Return", + "src": "21884:29:18" + } + ] + }, + "documentation": { + "id": 8986, + "nodeType": "StructuredDocumentation", + "src": "21632:117:18", + "text": " @dev returns the details of a given tokenId, omitting holders\n @param tokenId token to check" + }, + "functionSelector": "c1e03728", + "id": 8998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenDetails", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8988, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 8998, + "src": "21779:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21779:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21778:17:18" + }, + "returnParameters": { + "id": 8992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8991, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8998, + "src": "21843:25:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_memory_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + }, + "typeName": { + "id": 8990, + "name": "CarbonTokenDetails", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7667, + "src": "21843:18:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CarbonTokenDetails_$7667_storage_ptr", + "typeString": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails" + } + }, + "visibility": "internal" + } + ], + "src": "21842:27:18" + }, + "scope": 9012, + "src": "21754:166:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9010, + "nodeType": "Block", + "src": "22106:43:18", + "statements": [ + { + "expression": { + "id": 9008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9006, + "name": "limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7615, + "src": "22116:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 9007, + "name": "_limitedMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9001, + "src": "22130:12:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "22116:26:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9009, + "nodeType": "ExpressionStatement", + "src": "22116:26:18" + } + ] + }, + "documentation": { + "id": 8999, + "nodeType": "StructuredDocumentation", + "src": "21926:93:18", + "text": " @dev turns off or on limited mode\n @param _limitedMode boolean value" + }, + "functionSelector": "ddc3e6eb", + "id": 9011, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 9004, + "modifierName": { + "id": 9003, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "22092:9:18", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "22092:9:18" + } + ], + "name": "setLimitedMode", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9001, + "mutability": "mutable", + "name": "_limitedMode", + "nodeType": "VariableDeclaration", + "scope": 9011, + "src": "22048:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9000, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22048:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "22047:19:18" + }, + "returnParameters": { + "id": 9005, + "nodeType": "ParameterList", + "parameters": [], + "src": "22106:0:18" + }, + "scope": 9012, + "src": "22024:125:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 9013, + "src": "602:21550:18" + } + ], + "src": "39:22114:18" + }, + "id": 18 + } + } + } +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.dbg.json new file mode 100644 index 00000000000..178fa323257 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.json new file mode 100644 index 00000000000..feb94d9d3df --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.json @@ -0,0 +1,583 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DAOToken", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DELEGATION_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint96", + "name": "amount", + "type": "uint96" + } + ], + "name": "_burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getCurrentVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInitialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "governor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newGovernor", + "type": "address" + } + ], + "name": "setGovernor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526a084595161401484a0000006000556000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006257600080fd5b50604051620037c7380380620037c78339818101604052810190620000889190620001c1565b600054600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200019b9190620001fe565b60405180910390a35062000273565b600081519050620001bb8162000259565b92915050565b600060208284031215620001d457600080fd5b6000620001e484828501620001aa565b91505092915050565b620001f8816200024f565b82525050565b6000602082019050620002156000830184620001ed565b92915050565b600062000228826200022f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b62000264816200021b565b81146200027057600080fd5b50565b61354480620002836000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063782d6fe1116100de578063b72218e311610097578063c4e41b2211610071578063c4e41b2214610488578063dd62ed3e146104a6578063e7a324dc146104d6578063f1127ed8146104f457610173565b8063b72218e314610432578063c3cda52014610450578063c42cf5351461046c57610173565b8063782d6fe1146103365780637ecebe001461036657806395d89b4114610396578063a9059cbb146103b4578063ae80d9de146103e4578063b4b5ea571461040257610173565b8063313ce56711610130578063313ce56714610250578063587cde1e1461026e5780635c19a95c1461029e5780636fcfff45146102ba57806370a08231146102ea57806372d3ee9e1461031a57610173565b806306fdde0314610178578063095ea7b3146101965780630c340a24146101c657806318160ddd146101e457806320606b701461020257806323b872dd14610220575b600080fd5b610180610525565b60405161018d9190612fa2565b60405180910390f35b6101b060048036038101906101ab91906127ca565b61055e565b6040516101bd9190612e9d565b60405180910390f35b6101ce6106f1565b6040516101db9190612e82565b60405180910390f35b6101ec610717565b6040516101f99190613124565b60405180910390f35b61020a61071d565b6040516102179190612eb8565b60405180910390f35b61023a6004803603810190610235919061277b565b610741565b6040516102479190612e9d565b60405180910390f35b6102586109d5565b6040516102659190613183565b60405180910390f35b61028860048036038101906102839190612716565b6109da565b6040516102959190612e82565b60405180910390f35b6102b860048036038101906102b39190612716565b610a0d565b005b6102d460048036038101906102cf9190612716565b610a1a565b6040516102e1919061313f565b60405180910390f35b61030460048036038101906102ff9190612716565b610a3d565b6040516103119190613124565b60405180910390f35b610334600480360381019061032f91906128cb565b610aac565b005b610350600480360381019061034b91906127ca565b610d5f565b60405161035d91906131b9565b60405180910390f35b610380600480360381019061037b9190612716565b61116e565b60405161038d9190613124565b60405180910390f35b61039e611186565b6040516103ab9190612fa2565b60405180910390f35b6103ce60048036038101906103c991906127ca565b6111bf565b6040516103db9190612e9d565b60405180910390f35b6103ec6111fc565b6040516103f99190612e82565b60405180910390f35b61041c60048036038101906104179190612716565b611226565b60405161042991906131b9565b60405180910390f35b61043a611314565b6040516104479190612e82565b60405180910390f35b61046a60048036038101906104659190612806565b61133a565b005b61048660048036038101906104819190612716565b6115f7565b005b61049061175c565b60405161049d9190613124565b60405180910390f35b6104c060048036038101906104bb919061273f565b611765565b6040516104cd9190613124565b60405180910390f35b6104de611812565b6040516104eb9190612eb8565b60405180910390f35b61050e6004803603810190610509919061288f565b611836565b60405161051c92919061315a565b60405180910390f35b6040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e00000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156105b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506105d6565b6105d38360405180606001604052806026815260200161348b6026913961188f565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516106de919061319e565b60405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108048560405180606001604052806026815260200161348b6026913961188f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561087e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156109bc5760006108a883836040518060600160405280603e815260200161344d603e91396118ed565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109b2919061319e565b60405180910390a3505b6109c787878361195e565b600193505050509392505050565b601281565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a173382611de3565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613104565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906130e4565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050816bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90612fc4565b60405180910390fd5b818103600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550816bffffffffffffffffffffffff166000808282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d52919061319e565b60405180910390a3505050565b6000438210610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a90613064565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610e10576000915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610f1257600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610f93576000915050611168565b6000806001830390505b8163ffffffff168163ffffffff1611156110ea576000600283830363ffffffff1681610fc557fe5b0482039050610fd261266a565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff1614156110c257806020015195505050505050611168565b86816000015163ffffffff1610156110dc578193506110e3565b6001820392505b5050610f9d565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600581526020017f64434c4d3800000000000000000000000000000000000000000000000000000081525081565b6000806111e4836040518060600160405280602781526020016134266027913961188f565b90506111f133858361195e565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161129057600061130c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e000000000000000000000000000000815250805190602001206113a2611fa3565b306040516020016113b69493929190612f18565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016114079493929190612ed3565b60405160208183030381529060405280519060200120905060008282604051602001611434929190612e4b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516114719493929190612f5d565b6020604051602081039080840390855afa158015611493573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613024565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613084565b60405180910390fd5b874211156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906130c4565b60405180910390fd5b6115eb818b611de3565b50505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613004565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612fe4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612fa2565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489190612fa2565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c5906130a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613044565b60405180910390fd5b611ab8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603781526020016133be603791396118ed565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b9f600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603181526020016133f560319139611fb0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c69919061319e565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d1457611d0f8283611de3565b611dde565b611ddd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612026565b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f9d828483612026565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612fa2565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207057506000816bffffffffffffffffffffffff16115b1561231c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121c8576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161211357600061218f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121b682856040518060600160405280602981526020016134b1602991396118ed565b90506121c486848484612321565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461231b576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116122665760006122e2565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612309828560405180606001604052806028815260200161339660289139611fb0565b905061231785848484612321565b5050505b5b505050565b6000612345436040518060600160405280603581526020016134da60359139612614565b905060008463ffffffff161180156123da57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156124755781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506125bd565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516126059291906131d4565b60405180910390a25050505050565b600064010000000083108290612660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126579190612fa2565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506126a78161330b565b92915050565b6000813590506126bc81613322565b92915050565b6000813590506126d181613339565b92915050565b6000813590506126e681613350565b92915050565b6000813590506126fb81613367565b92915050565b6000813590506127108161337e565b92915050565b60006020828403121561272857600080fd5b600061273684828501612698565b91505092915050565b6000806040838503121561275257600080fd5b600061276085828601612698565b925050602061277185828601612698565b9150509250929050565b60008060006060848603121561279057600080fd5b600061279e86828701612698565b93505060206127af86828701612698565b92505060406127c0868287016126c2565b9150509250925092565b600080604083850312156127dd57600080fd5b60006127eb85828601612698565b92505060206127fc858286016126c2565b9150509250929050565b60008060008060008060c0878903121561281f57600080fd5b600061282d89828a01612698565b965050602061283e89828a016126c2565b955050604061284f89828a016126c2565b945050606061286089828a016126ec565b935050608061287189828a016126ad565b92505060a061288289828a016126ad565b9150509295509295509295565b600080604083850312156128a257600080fd5b60006128b085828601612698565b92505060206128c1858286016126d7565b9150509250929050565b600080604083850312156128de57600080fd5b60006128ec85828601612698565b92505060206128fd85828601612701565b9150509250929050565b61291081613224565b82525050565b61291f81613236565b82525050565b61292e81613242565b82525050565b61294561294082613242565b6132f0565b82525050565b6000612956826131fd565b6129608185613208565b93506129708185602086016132bd565b612979816132fa565b840191505092915050565b6000612991602983613208565b91507f64434c4d383a3a5f6275726e3a206275726e20616d6f756e742065786365656460008301527f732062616c616e636500000000000000000000000000000000000000000000006020830152604082019050919050565b60006129f7603083613208565b91507f64434c4d3a3a736574476f7665726e6f723a20676f7665726e6f722063616e2060008301527f6f6e6c7920626520736574206f6e6365000000000000000000000000000000006020830152604082019050919050565b6000612a5d602a83613208565b91507f64434c4d383a3a736574476f7665726e6f723a206d75737420626520696e697460008301527f69616c20686f6c646572000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac3600283613219565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612b03602783613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c696420736960008301527f676e6174757265000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b69603b83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e7366657220746f20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000612bcf602883613208565b91507f64434c4d383a3a6765745072696f72566f7465733a206e6f742079657420646560008301527f7465726d696e65640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c35602383613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c6964206e6f60008301527f6e636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c9b603d83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e736665722066726f6d20746865207a65726f20616464726573730000006020830152604082019050919050565b6000612d01602783613208565b91507f64434c4d383a3a64656c656761746542795369673a207369676e61747572652060008301527f65787069726564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d67601e83613208565b91507f64434c4d383a3a5f6275726e3a206d75737420626520676f7665726e6f7200006000830152602082019050919050565b6000612da7602883613208565b91507f64434c4d383a3a5f6275726e3a206275726e2066726f6d20746865207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b612e098161326c565b82525050565b612e1881613276565b82525050565b612e2781613286565b82525050565b612e36816132ab565b82525050565b612e4581613293565b82525050565b6000612e5682612ab6565b9150612e628285612934565b602082019150612e728284612934565b6020820191508190509392505050565b6000602082019050612e976000830184612907565b92915050565b6000602082019050612eb26000830184612916565b92915050565b6000602082019050612ecd6000830184612925565b92915050565b6000608082019050612ee86000830187612925565b612ef56020830186612907565b612f026040830185612e00565b612f0f6060830184612e00565b95945050505050565b6000608082019050612f2d6000830187612925565b612f3a6020830186612925565b612f476040830185612e00565b612f546060830184612907565b95945050505050565b6000608082019050612f726000830187612925565b612f7f6020830186612e1e565b612f8c6040830185612925565b612f996060830184612925565b95945050505050565b60006020820190508181036000830152612fbc818461294b565b905092915050565b60006020820190508181036000830152612fdd81612984565b9050919050565b60006020820190508181036000830152612ffd816129ea565b9050919050565b6000602082019050818103600083015261301d81612a50565b9050919050565b6000602082019050818103600083015261303d81612af6565b9050919050565b6000602082019050818103600083015261305d81612b5c565b9050919050565b6000602082019050818103600083015261307d81612bc2565b9050919050565b6000602082019050818103600083015261309d81612c28565b9050919050565b600060208201905081810360008301526130bd81612c8e565b9050919050565b600060208201905081810360008301526130dd81612cf4565b9050919050565b600060208201905081810360008301526130fd81612d5a565b9050919050565b6000602082019050818103600083015261311d81612d9a565b9050919050565b60006020820190506131396000830184612e00565b92915050565b60006020820190506131546000830184612e0f565b92915050565b600060408201905061316f6000830185612e0f565b61317c6020830184612e3c565b9392505050565b60006020820190506131986000830184612e1e565b92915050565b60006020820190506131b36000830184612e2d565b92915050565b60006020820190506131ce6000830184612e3c565b92915050565b60006040820190506131e96000830185612e2d565b6131f66020830184612e2d565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061322f8261324c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132b682613293565b9050919050565b60005b838110156132db5780820151818401526020810190506132c0565b838111156132ea576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61331481613224565b811461331f57600080fd5b50565b61332b81613242565b811461333657600080fd5b50565b6133428161326c565b811461334d57600080fd5b50565b61335981613276565b811461336457600080fd5b50565b61337081613286565b811461337b57600080fd5b50565b61338781613293565b811461339257600080fd5b5056fe64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777364434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e636564434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777364434c4d383a3a7472616e736665723a20616d6f756e742065786365656473203936206269747364434c4d383a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e636564434c4d383a3a617070726f76653a20616d6f756e742065786365656473203936206269747364434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f777364434c4d383a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212209e2b838a499d4a780857e8a99e0123f73d9723b55648df6f08017e56b99aca3164736f6c63430007030033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063782d6fe1116100de578063b72218e311610097578063c4e41b2211610071578063c4e41b2214610488578063dd62ed3e146104a6578063e7a324dc146104d6578063f1127ed8146104f457610173565b8063b72218e314610432578063c3cda52014610450578063c42cf5351461046c57610173565b8063782d6fe1146103365780637ecebe001461036657806395d89b4114610396578063a9059cbb146103b4578063ae80d9de146103e4578063b4b5ea571461040257610173565b8063313ce56711610130578063313ce56714610250578063587cde1e1461026e5780635c19a95c1461029e5780636fcfff45146102ba57806370a08231146102ea57806372d3ee9e1461031a57610173565b806306fdde0314610178578063095ea7b3146101965780630c340a24146101c657806318160ddd146101e457806320606b701461020257806323b872dd14610220575b600080fd5b610180610525565b60405161018d9190612fa2565b60405180910390f35b6101b060048036038101906101ab91906127ca565b61055e565b6040516101bd9190612e9d565b60405180910390f35b6101ce6106f1565b6040516101db9190612e82565b60405180910390f35b6101ec610717565b6040516101f99190613124565b60405180910390f35b61020a61071d565b6040516102179190612eb8565b60405180910390f35b61023a6004803603810190610235919061277b565b610741565b6040516102479190612e9d565b60405180910390f35b6102586109d5565b6040516102659190613183565b60405180910390f35b61028860048036038101906102839190612716565b6109da565b6040516102959190612e82565b60405180910390f35b6102b860048036038101906102b39190612716565b610a0d565b005b6102d460048036038101906102cf9190612716565b610a1a565b6040516102e1919061313f565b60405180910390f35b61030460048036038101906102ff9190612716565b610a3d565b6040516103119190613124565b60405180910390f35b610334600480360381019061032f91906128cb565b610aac565b005b610350600480360381019061034b91906127ca565b610d5f565b60405161035d91906131b9565b60405180910390f35b610380600480360381019061037b9190612716565b61116e565b60405161038d9190613124565b60405180910390f35b61039e611186565b6040516103ab9190612fa2565b60405180910390f35b6103ce60048036038101906103c991906127ca565b6111bf565b6040516103db9190612e9d565b60405180910390f35b6103ec6111fc565b6040516103f99190612e82565b60405180910390f35b61041c60048036038101906104179190612716565b611226565b60405161042991906131b9565b60405180910390f35b61043a611314565b6040516104479190612e82565b60405180910390f35b61046a60048036038101906104659190612806565b61133a565b005b61048660048036038101906104819190612716565b6115f7565b005b61049061175c565b60405161049d9190613124565b60405180910390f35b6104c060048036038101906104bb919061273f565b611765565b6040516104cd9190613124565b60405180910390f35b6104de611812565b6040516104eb9190612eb8565b60405180910390f35b61050e6004803603810190610509919061288f565b611836565b60405161051c92919061315a565b60405180910390f35b6040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e00000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156105b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506105d6565b6105d38360405180606001604052806026815260200161348b6026913961188f565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516106de919061319e565b60405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108048560405180606001604052806026815260200161348b6026913961188f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561087e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156109bc5760006108a883836040518060600160405280603e815260200161344d603e91396118ed565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109b2919061319e565b60405180910390a3505b6109c787878361195e565b600193505050509392505050565b601281565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a173382611de3565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613104565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906130e4565b60405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050816bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90612fc4565b60405180910390fd5b818103600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550816bffffffffffffffffffffffff166000808282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d52919061319e565b60405180910390a3505050565b6000438210610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a90613064565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610e10576000915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610f1257600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611168565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610f93576000915050611168565b6000806001830390505b8163ffffffff168163ffffffff1611156110ea576000600283830363ffffffff1681610fc557fe5b0482039050610fd261266a565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff1614156110c257806020015195505050505050611168565b86816000015163ffffffff1610156110dc578193506110e3565b6001820392505b5050610f9d565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600581526020017f64434c4d3800000000000000000000000000000000000000000000000000000081525081565b6000806111e4836040518060600160405280602781526020016134266027913961188f565b90506111f133858361195e565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161129057600061130c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601181526020017f436c696d6174652044414f20546f6b656e000000000000000000000000000000815250805190602001206113a2611fa3565b306040516020016113b69493929190612f18565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016114079493929190612ed3565b60405160208183030381529060405280519060200120905060008282604051602001611434929190612e4b565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516114719493929190612f5d565b6020604051602081039080840390855afa158015611493573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613024565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613084565b60405180910390fd5b874211156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906130c4565b60405180910390fd5b6115eb818b611de3565b50505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613004565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612fe4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612fa2565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611951576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119489190612fa2565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c5906130a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613044565b60405180910390fd5b611ab8600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603781526020016133be603791396118ed565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b9f600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603181526020016133f560319139611fb0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c69919061319e565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d1457611d0f8283611de3565b611dde565b611ddd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612026565b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f9d828483612026565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612fa2565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207057506000816bffffffffffffffffffffffff16115b1561231c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121c8576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161211357600061218f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121b682856040518060600160405280602981526020016134b1602991396118ed565b90506121c486848484612321565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461231b576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116122665760006122e2565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612309828560405180606001604052806028815260200161339660289139611fb0565b905061231785848484612321565b5050505b5b505050565b6000612345436040518060600160405280603581526020016134da60359139612614565b905060008463ffffffff161180156123da57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156124755781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506125bd565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516126059291906131d4565b60405180910390a25050505050565b600064010000000083108290612660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126579190612fa2565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506126a78161330b565b92915050565b6000813590506126bc81613322565b92915050565b6000813590506126d181613339565b92915050565b6000813590506126e681613350565b92915050565b6000813590506126fb81613367565b92915050565b6000813590506127108161337e565b92915050565b60006020828403121561272857600080fd5b600061273684828501612698565b91505092915050565b6000806040838503121561275257600080fd5b600061276085828601612698565b925050602061277185828601612698565b9150509250929050565b60008060006060848603121561279057600080fd5b600061279e86828701612698565b93505060206127af86828701612698565b92505060406127c0868287016126c2565b9150509250925092565b600080604083850312156127dd57600080fd5b60006127eb85828601612698565b92505060206127fc858286016126c2565b9150509250929050565b60008060008060008060c0878903121561281f57600080fd5b600061282d89828a01612698565b965050602061283e89828a016126c2565b955050604061284f89828a016126c2565b945050606061286089828a016126ec565b935050608061287189828a016126ad565b92505060a061288289828a016126ad565b9150509295509295509295565b600080604083850312156128a257600080fd5b60006128b085828601612698565b92505060206128c1858286016126d7565b9150509250929050565b600080604083850312156128de57600080fd5b60006128ec85828601612698565b92505060206128fd85828601612701565b9150509250929050565b61291081613224565b82525050565b61291f81613236565b82525050565b61292e81613242565b82525050565b61294561294082613242565b6132f0565b82525050565b6000612956826131fd565b6129608185613208565b93506129708185602086016132bd565b612979816132fa565b840191505092915050565b6000612991602983613208565b91507f64434c4d383a3a5f6275726e3a206275726e20616d6f756e742065786365656460008301527f732062616c616e636500000000000000000000000000000000000000000000006020830152604082019050919050565b60006129f7603083613208565b91507f64434c4d3a3a736574476f7665726e6f723a20676f7665726e6f722063616e2060008301527f6f6e6c7920626520736574206f6e6365000000000000000000000000000000006020830152604082019050919050565b6000612a5d602a83613208565b91507f64434c4d383a3a736574476f7665726e6f723a206d75737420626520696e697460008301527f69616c20686f6c646572000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac3600283613219565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612b03602783613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c696420736960008301527f676e6174757265000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b69603b83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e7366657220746f20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000612bcf602883613208565b91507f64434c4d383a3a6765745072696f72566f7465733a206e6f742079657420646560008301527f7465726d696e65640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c35602383613208565b91507f64434c4d383a3a64656c656761746542795369673a20696e76616c6964206e6f60008301527f6e636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c9b603d83613208565b91507f64434c4d383a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460008301527f72616e736665722066726f6d20746865207a65726f20616464726573730000006020830152604082019050919050565b6000612d01602783613208565b91507f64434c4d383a3a64656c656761746542795369673a207369676e61747572652060008301527f65787069726564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d67601e83613208565b91507f64434c4d383a3a5f6275726e3a206d75737420626520676f7665726e6f7200006000830152602082019050919050565b6000612da7602883613208565b91507f64434c4d383a3a5f6275726e3a206275726e2066726f6d20746865207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b612e098161326c565b82525050565b612e1881613276565b82525050565b612e2781613286565b82525050565b612e36816132ab565b82525050565b612e4581613293565b82525050565b6000612e5682612ab6565b9150612e628285612934565b602082019150612e728284612934565b6020820191508190509392505050565b6000602082019050612e976000830184612907565b92915050565b6000602082019050612eb26000830184612916565b92915050565b6000602082019050612ecd6000830184612925565b92915050565b6000608082019050612ee86000830187612925565b612ef56020830186612907565b612f026040830185612e00565b612f0f6060830184612e00565b95945050505050565b6000608082019050612f2d6000830187612925565b612f3a6020830186612925565b612f476040830185612e00565b612f546060830184612907565b95945050505050565b6000608082019050612f726000830187612925565b612f7f6020830186612e1e565b612f8c6040830185612925565b612f996060830184612925565b95945050505050565b60006020820190508181036000830152612fbc818461294b565b905092915050565b60006020820190508181036000830152612fdd81612984565b9050919050565b60006020820190508181036000830152612ffd816129ea565b9050919050565b6000602082019050818103600083015261301d81612a50565b9050919050565b6000602082019050818103600083015261303d81612af6565b9050919050565b6000602082019050818103600083015261305d81612b5c565b9050919050565b6000602082019050818103600083015261307d81612bc2565b9050919050565b6000602082019050818103600083015261309d81612c28565b9050919050565b600060208201905081810360008301526130bd81612c8e565b9050919050565b600060208201905081810360008301526130dd81612cf4565b9050919050565b600060208201905081810360008301526130fd81612d5a565b9050919050565b6000602082019050818103600083015261311d81612d9a565b9050919050565b60006020820190506131396000830184612e00565b92915050565b60006020820190506131546000830184612e0f565b92915050565b600060408201905061316f6000830185612e0f565b61317c6020830184612e3c565b9392505050565b60006020820190506131986000830184612e1e565b92915050565b60006020820190506131b36000830184612e2d565b92915050565b60006020820190506131ce6000830184612e3c565b92915050565b60006040820190506131e96000830185612e2d565b6131f66020830184612e2d565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061322f8261324c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132b682613293565b9050919050565b60005b838110156132db5780820151818401526020810190506132c0565b838111156132ea576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61331481613224565b811461331f57600080fd5b50565b61332b81613242565b811461333657600080fd5b50565b6133428161326c565b811461334d57600080fd5b50565b61335981613276565b811461336457600080fd5b50565b61337081613286565b811461337b57600080fd5b50565b61338781613293565b811461339257600080fd5b5056fe64434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777364434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e636564434c4d383a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777364434c4d383a3a7472616e736665723a20616d6f756e742065786365656473203936206269747364434c4d383a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e636564434c4d383a3a617070726f76653a20616d6f756e742065786365656473203936206269747364434c4d383a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f777364434c4d383a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212209e2b838a499d4a780857e8a99e0123f73d9723b55648df6f08017e56b99aca3164736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.dbg.json new file mode 100644 index 00000000000..178fa323257 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.json new file mode 100644 index 00000000000..afa1538fdb5 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Dclm8Interface.json @@ -0,0 +1,98 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Dclm8Interface", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint96", + "name": "amount", + "type": "uint96" + } + ], + "name": "_burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInitialHolder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.dbg.json new file mode 100644 index 00000000000..178fa323257 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.json new file mode 100644 index 00000000000..4b618af8275 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/Governor.json @@ -0,0 +1,710 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Governor", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "dclm8_", + "type": "address" + }, + { + "internalType": "address", + "name": "guardian_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "__abdicate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "__acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__executeSetTimelockPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__queueSetTimelockPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "name": "castVote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "name": "castVoteBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "dclm8", + "outputs": [ + { + "internalType": "contract Dclm8Interface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getActions", + "outputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getDescription", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "getReceipt", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct Governor.Receipt", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "guardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalMaxOperations", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "queue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "quorumVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "state", + "outputs": [ + { + "internalType": "enum Governor.ProposalState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract TimelockInterface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620058d3380380620058d3833981810160405281019062000037919062000119565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001bd565b6000815190506200011381620001a3565b92915050565b6000806000606084860312156200012f57600080fd5b60006200013f8682870162000102565b9350506020620001528682870162000102565b9250506040620001658682870162000102565b9150509250925092565b60006200017c8262000183565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001ae816200016f565b8114620001ba57600080fd5b50565b61570680620001cd6000396000f3fe6080604052600436106101b75760003560e01c8063760fbc13116100ec578063da35c6641161008a578063ddf0b00911610064578063ddf0b0091461060a578063deaaa7cc14610633578063e23a9a521461065e578063fe0d94c11461069b576101b7565b8063da35c66414610579578063da95691a146105a4578063dbfa977f146105e1576101b7565b806394a08d58116100c657806394a08d58146104e1578063b58131b01461050c578063b9a6196114610537578063d33219b41461054e576101b7565b8063760fbc13146104765780637bdbe4d01461048d57806391500671146104b8576101b7565b8063328dd9821161015957806340e58ee51161013357806340e58ee5146103bc578063452a9320146103e55780634925ec55146104105780635d2546081461044d576101b7565b8063328dd982146103145780633932abb1146103545780633e4f49e61461037f576101b7565b806317977c611161019557806317977c611461025857806320606b701461029557806321f43e42146102c057806324bc1a64146102e9576101b7565b8063013cf08b146101bc57806302a251a31461020257806306fdde031461022d575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de9190613878565b6106b7565b6040516101f99a99989796959493929190615115565b60405180910390f35b34801561020e57600080fd5b506102176107dd565b604051610224919061504a565b60405180910390f35b34801561023957600080fd5b506102426107e7565b60405161024f9190614d2d565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a9190613668565b610820565b60405161028c919061504a565b60405180910390f35b3480156102a157600080fd5b506102aa610838565b6040516102b79190614c00565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e291906136ba565b61085c565b005b3480156102f557600080fd5b506102fe6109e7565b60405161030b919061504a565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613878565b610c0e565b60405161034b9493929190614b9f565b60405180910390f35b34801561036057600080fd5b50610369610eeb565b604051610376919061504a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613878565b610ef4565b6040516103b39190614d12565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613878565b6110d7565b005b3480156103f157600080fd5b506103fa61146f565b60405161040791906149a3565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613878565b611495565b6040516104449190614d2d565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190613906565b61154d565b005b34801561048257600080fd5b5061048b611738565b005b34801561049957600080fd5b506104a261180c565b6040516104af919061504a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906136ba565b611815565b005b3480156104ed57600080fd5b506104f661199b565b6040516105039190614cdc565b60405180910390f35b34801561051857600080fd5b506105216119c1565b60405161052e919061504a565b60405180910390f35b34801561054357600080fd5b5061054c6119d3565b005b34801561055a57600080fd5b50610563611ae5565b6040516105709190614cf7565b60405180910390f35b34801561058557600080fd5b5061058e611b09565b60405161059b919061504a565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906136f6565b611b0f565b6040516105d8919061504a565b60405180910390f35b3480156105ed57600080fd5b506106086004803603810190610603919061398f565b612070565b005b34801561061657600080fd5b50610631600480360381019061062c9190613878565b612081565b005b34801561063f57600080fd5b506106486123cc565b6040516106559190614c00565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906138ca565b6123f0565b604051610692919061502f565b60405180910390f35b6106b560048036038101906106b09190613878565b6124d2565b005b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900460ff169080600b0160019054906101000a900460ff169080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505090508a565b6000614380905090565b6040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f7200000000000000000000000081525081565b60056020528060005260406000206000915090505481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390614e4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161095c91906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161098b94939291906149e7565b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109e29190613837565b505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae80d9de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190613691565b6040518263ffffffff1660e01b8152600401610ae491906149a3565b60206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3491906138a1565b9050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba157600080fd5b505afa158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd991906138a1565b03905060008114610c0057610bf7610bf282601961271b565b612765565b92505050610c0b565b649341498e01925050505b90565b60608060608060006004600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610cbc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c72575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610d0e57602002820191906000526020600020905b815481526020019060010190808311610cfa575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610df2578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b505050505081526020019060010190610d36565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ed5578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec15780601f10610e9657610100808354040283529160200191610ec1565b820191906000526020600020905b815481529060010190602001808311610ea457829003601f168201915b505050505081526020019060010190610e19565b5050505090509450945094509450509193509193565b60006001905090565b60008160035410158015610f085750600082115b610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90614e6f565b60405180910390fd5b600060046000848152602001908152602001600020905080600b0160009054906101000a900460ff1615610f7f5760029150506110d2565b80600701544311610f945760009150506110d2565b80600801544311610fa95760019150506110d2565b80600a01548160090154111580610fca5750610fc36109e7565b8160090154105b15610fd95760039150506110d2565b600081600201541415610ff05760049150506110d2565b80600b0160019054906101000a900460ff16156110115760079150506110d2565b6110bc816002015460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b791906138a1565b6127aa565b42106110cc5760069150506110d2565b60059150505b919050565b60006110e282610ef4565b90506007808111156110f057fe5b8160078111156110fc57fe5b141561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490614def565b60405180910390fd5b6000600460008481526020019081526020016000209050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129e57506111b36119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112214360016127ff565b6040518363ffffffff1660e01b815260040161123e929190614a46565b60206040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128e91906139de565b6bffffffffffffffffffffffff16105b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490614f8f565b60405180910390fd5b600181600b0160006101000a81548160ff02191690831515021790555060005b81600301805490508110156114325760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591fcdfe83600301838154811061135757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401848154811061139157fe5b90600052602060002001548560050185815481106113ab57fe5b906000526020600020018660060186815481106113c457fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016113f3959493929190614b15565b600060405180830381600087803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b5050505080806001019150506112fd565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051611462919061504a565b60405180910390a1505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060046000838152602001908152602001600020600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b50505050509050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f72000000000000000000000000815250805190602001206115b561284f565b306040516020016115c99493929190614c1b565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee888860405160200161161893929190614c60565b6040516020818303038152906040528051906020012090506000828260405160200161164592919061496c565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516116829493929190614c97565b6020604051602081039080840390855afa1580156116a4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117179061500f565b60405180910390fd5b61172c818b8b8861285c565b50505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90614f0f565b60405180910390fd5b6000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90614d8f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161191591906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161194494939291906149e7565b602060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611996919061380e565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000611b196119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe133611b634360016127ff565b6040518363ffffffff1660e01b8152600401611b809291906149be565b60206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906139de565b6bffffffffffffffffffffffff1611611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590614d4f565b60405180910390fd5b84518651148015611c30575083518651145b8015611c3d575082518651145b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390614d6f565b60405180910390fd5b600086511415611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890614e0f565b60405180910390fd5b611cc961180c565b86511115611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390614dcf565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611e1b576000611d6382610ef4565b905060016007811115611d7257fe5b816007811115611d7e57fe5b1415611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690614e8f565b60405180910390fd5b60006007811115611dcc57fe5b816007811115611dd857fe5b1415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614e2f565b60405180910390fd5b505b6000611e2e43611e29610eeb565b6127aa565b90506000611e4382611e3e6107dd565b6127aa565b9050600360008154809291906001019190505550600060046000600354815260200190815260200160002090506003548160000181905550338160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000816002018190555089816003019080519060200190611ee0929190612ed8565b5088816004019080519060200190611ef9929190612f62565b5087816005019080519060200190611f12929190612faf565b5086816006019080519060200190611f2b92919061300f565b5082816007018190555081816008018190555060008160090181905550600081600a0181905550600081600b0160006101000a81548160ff021916908315150217905550600081600b0160016101000a81548160ff0219169083151502179055508581600c019080519060200190611fa492919061306f565b508060000154600560008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000154338c8c8c8c89898e60405161205499989796959493929190615065565b60405180910390a1806000015494505050505095945050505050565b61207c3384848461285c565b505050565b6004600781111561208e57fe5b61209782610ef4565b60078111156120a257fe5b146120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d990614fef565b60405180910390fd5b600060046000838152602001908152602001600020905060006121a24260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561216557600080fd5b505afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d91906138a1565b6127aa565b905060005b8260030180549050811015612384576123778360030182815481106121c857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401838154811061220257fe5b906000526020600020015485600501848154811061221c57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122ba5780601f1061228f576101008083540402835291602001916122ba565b820191906000526020600020905b81548152906001019060200180831161229d57829003601f168201915b50505050508660060185815481106122ce57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561236c5780601f106123415761010080835404028352916020019161236c565b820191906000526020600020905b81548152906001019060200180831161234f57829003601f168201915b505050505086612ca5565b80806001019150506121a7565b508082600201819055507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516123bf9291906151b8565b60405180910390a1505050565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b6123f86130ef565b60046000848152602001908152602001600020600d0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905092915050565b600560078111156124df57fe5b6124e882610ef4565b60078111156124f357fe5b14612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614ecf565b60405180910390fd5b6000600460008381526020019081526020016000209050600181600b0160016101000a81548160ff02191690831515021790555060005b81600301805490508110156126df5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f8360040183815481106125c457fe5b90600052602060002001548460030184815481106125de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401858154811061261857fe5b906000526020600020015486600501868154811061263257fe5b9060005260206000200187600601878154811061264b57fe5b9060005260206000200188600201546040518763ffffffff1660e01b815260040161267a959493929190614b15565b6000604051808303818588803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906126d19190613837565b50808060010191505061256a565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161270f919061504a565b60405180910390a15050565b600061275d83836040518060400160405280601081526020017f6469766973696f6e206279207a65726f00000000000000000000000000000000815250612e77565b905092915050565b6000806002600184018161277557fe5b0490508291505b818110156127a45780915060028182858161279357fe5b04018161279c57fe5b04905061277c565b50919050565b6000808284019050838110156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90614eef565b60405180910390fd5b8091505092915050565b600082821115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614fcf565b60405180910390fd5b818303905092915050565b6000804690508091505090565b6001600781111561286957fe5b61287284610ef4565b600781111561287d57fe5b146128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614faf565b60405180910390fd5b6000600460008581526020019081526020016000209050600081600d0160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff16151514612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614f6f565b60405180910390fd5b6000836bffffffffffffffffffffffff16116129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990614daf565b60405180910390fd5b60008160000160029054906101000a90046bffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18986600701546040518363ffffffff1660e01b8152600401612a42929190614a46565b60206040518083038186803b158015612a5a57600080fd5b505afa158015612a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9291906139de565b039050806bffffffffffffffffffffffff16846bffffffffffffffffffffffff161115612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb90614eaf565b60405180910390fd5b6000612b0d856bffffffffffffffffffffffff16612765565b90508515612b3e57612b318460090154826bffffffffffffffffffffffff166127aa565b8460090181905550612b63565b612b5a84600a0154826bffffffffffffffffffffffff166127aa565b84600a01819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372d3ee9e89876040518363ffffffff1660e01b8152600401612bc0929190614b76565b600060405180830381600087803b158015612bda57600080fd5b505af1158015612bee573d6000803e3d6000fd5b5050505060018360000160006101000a81548160ff021916908315150217905550858360000160016101000a81548160ff021916908315150217905550808360000160026101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4688888884604051612c939493929190614a6f565b60405180910390a15050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2b065378686868686604051602001612cfa959493929190614ab4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612d2c9190614c00565b60206040518083038186803b158015612d4457600080fd5b505afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906137e5565b15612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db390614f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90186868686866040518663ffffffff1660e01b8152600401612e1d959493929190614ab4565b602060405180830381600087803b158015612e3757600080fd5b505af1158015612e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6f919061380e565b505050505050565b60008083118290612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb59190614d2d565b60405180910390fd5b506000838581612eca57fe5b049050809150509392505050565b828054828255906000526020600020908101928215612f51579160200282015b82811115612f505782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612ef8565b5b509050612f5e9190613122565b5090565b828054828255906000526020600020908101928215612f9e579160200282015b82811115612f9d578251825591602001919060010190612f82565b5b509050612fab9190613122565b5090565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffd578251829080519060200190612fed92919061306f565b5091602001919060010190612fcf565b5b50905061300b919061313f565b5090565b82805482825590600052602060002090810192821561305e579160200282015b8281111561305d57825182908051906020019061304d929190613163565b509160200191906001019061302f565b5b50905061306b91906131e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b057805160ff19168380011785556130de565b828001600101855582156130de579182015b828111156130dd5782518255916020019190600101906130c2565b5b5090506130eb9190613122565b5090565b604051806060016040528060001515815260200160001515815260200160006bffffffffffffffffffffffff1681525090565b5b8082111561313b576000816000905550600101613123565b5090565b5b8082111561315f57600081816131569190613207565b50600101613140565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131a457805160ff19168380011785556131d2565b828001600101855582156131d2579182015b828111156131d15782518255916020019190600101906131b6565b5b5090506131df9190613122565b5090565b5b8082111561320357600081816131fa919061324f565b506001016131e4565b5090565b50805460018160011615610100020316600290046000825580601f1061322d575061324c565b601f01602090049060005260206000209081019061324b9190613122565b5b50565b50805460018160011615610100020316600290046000825580601f106132755750613294565b601f0160209004906000526020600020908101906132939190613122565b5b50565b6000813590506132a681615646565b92915050565b6000815190506132bb81615646565b92915050565b600082601f8301126132d257600080fd5b81356132e56132e082615212565b6151e1565b9150818183526020840193506020810190508385602084028201111561330a57600080fd5b60005b8381101561333a57816133208882613297565b84526020840193506020830192505060018101905061330d565b5050505092915050565b600082601f83011261335557600080fd5b81356133686133638261523e565b6151e1565b9150818183526020840193506020810190508360005b838110156133ae57813586016133948882613503565b84526020840193506020830192505060018101905061337e565b5050505092915050565b600082601f8301126133c957600080fd5b81356133dc6133d78261526a565b6151e1565b9150818183526020840193506020810190508360005b83811015613422578135860161340888826135ab565b8452602084019350602083019250506001810190506133f2565b5050505092915050565b600082601f83011261343d57600080fd5b813561345061344b82615296565b6151e1565b9150818183526020840193506020810190508385602084028201111561347557600080fd5b60005b838110156134a5578161348b88826135ff565b845260208401935060208301925050600181019050613478565b5050505092915050565b6000813590506134be8161565d565b92915050565b6000815190506134d38161565d565b92915050565b6000813590506134e881615674565b92915050565b6000815190506134fd81615674565b92915050565b600082601f83011261351457600080fd5b8135613527613522826152c2565b6151e1565b9150808252602083016020830185838301111561354357600080fd5b61354e8382846155d3565b50505092915050565b600082601f83011261356857600080fd5b815161357b613576826152c2565b6151e1565b9150808252602083016020830185838301111561359757600080fd5b6135a28382846155e2565b50505092915050565b600082601f8301126135bc57600080fd5b81356135cf6135ca826152f2565b6151e1565b915080825260208301602083018583830111156135eb57600080fd5b6135f68382846155d3565b50505092915050565b60008135905061360e8161568b565b92915050565b6000815190506136238161568b565b92915050565b600081359050613638816156a2565b92915050565b60008135905061364d816156b9565b92915050565b600081519050613662816156b9565b92915050565b60006020828403121561367a57600080fd5b600061368884828501613297565b91505092915050565b6000602082840312156136a357600080fd5b60006136b1848285016132ac565b91505092915050565b600080604083850312156136cd57600080fd5b60006136db85828601613297565b92505060206136ec858286016135ff565b9150509250929050565b600080600080600060a0868803121561370e57600080fd5b600086013567ffffffffffffffff81111561372857600080fd5b613734888289016132c1565b955050602086013567ffffffffffffffff81111561375157600080fd5b61375d8882890161342c565b945050604086013567ffffffffffffffff81111561377a57600080fd5b613786888289016133b8565b935050606086013567ffffffffffffffff8111156137a357600080fd5b6137af88828901613344565b925050608086013567ffffffffffffffff8111156137cc57600080fd5b6137d8888289016135ab565b9150509295509295909350565b6000602082840312156137f757600080fd5b6000613805848285016134c4565b91505092915050565b60006020828403121561382057600080fd5b600061382e848285016134ee565b91505092915050565b60006020828403121561384957600080fd5b600082015167ffffffffffffffff81111561386357600080fd5b61386f84828501613557565b91505092915050565b60006020828403121561388a57600080fd5b6000613898848285016135ff565b91505092915050565b6000602082840312156138b357600080fd5b60006138c184828501613614565b91505092915050565b600080604083850312156138dd57600080fd5b60006138eb858286016135ff565b92505060206138fc85828601613297565b9150509250929050565b60008060008060008060c0878903121561391f57600080fd5b600061392d89828a016135ff565b965050602061393e89828a016134af565b955050604061394f89828a01613629565b945050606061396089828a016134d9565b935050608061397189828a016134d9565b92505060a061398289828a0161363e565b9150509295509295509295565b6000806000606084860312156139a457600080fd5b60006139b2868287016135ff565b93505060206139c3868287016134af565b92505060406139d48682870161363e565b9150509250925092565b6000602082840312156139f057600080fd5b60006139fe84828501613653565b91505092915050565b6000613a138383613a6e565b60208301905092915050565b6000613a2b8383613c76565b905092915050565b6000613a3f8383613db3565b905092915050565b6000613a538383614912565b60208301905092915050565b613a688161551f565b82525050565b613a7781615495565b82525050565b613a8681615495565b82525050565b6000613a978261538c565b613aa18185615402565b9350613aac83615322565b8060005b83811015613add578151613ac48882613a07565b9750613acf836153ce565b925050600181019050613ab0565b5085935050505092915050565b6000613af582615397565b613aff8185615413565b935083602082028501613b1185615332565b8060005b85811015613b4d5784840389528151613b2e8582613a1f565b9450613b39836153db565b925060208a01995050600181019050613b15565b50829750879550505050505092915050565b6000613b6a826153a2565b613b748185615424565b935083602082028501613b8685615342565b8060005b85811015613bc25784840389528151613ba38582613a33565b9450613bae836153e8565b925060208a01995050600181019050613b8a565b50829750879550505050505092915050565b6000613bdf826153ad565b613be98185615435565b9350613bf483615352565b8060005b83811015613c25578151613c0c8882613a47565b9750613c17836153f5565b925050600181019050613bf8565b5085935050505092915050565b613c3b816154a7565b82525050565b613c4a816154a7565b82525050565b613c59816154b3565b82525050565b613c70613c6b826154b3565b615615565b82525050565b6000613c81826153b8565b613c8b8185615446565b9350613c9b8185602086016155e2565b613ca481615621565b840191505092915050565b6000613cba826153b8565b613cc48185615457565b9350613cd48185602086016155e2565b613cdd81615621565b840191505092915050565b600081546001811660008114613d055760018114613d2b57613d6f565b607f6002830416613d168187615457565b955060ff198316865260208601935050613d6f565b60028204613d398187615457565b9550613d4485615362565b60005b82811015613d6657815481890152600182019150602081019050613d47565b80880195505050505b505092915050565b613d8081615531565b82525050565b613d8f81615555565b82525050565b613d9e81615579565b82525050565b613dad8161558b565b82525050565b6000613dbe826153c3565b613dc88185615468565b9350613dd88185602086016155e2565b613de181615621565b840191505092915050565b6000613df7826153c3565b613e018185615479565b9350613e118185602086016155e2565b613e1a81615621565b840191505092915050565b600081546001811660008114613e425760018114613e6857613eac565b607f6002830416613e538187615479565b955060ff198316865260208601935050613eac565b60028204613e768187615479565b9550613e8185615377565b60005b82811015613ea357815481890152600182019150602081019050613e84565b80880195505050505b505092915050565b6000613ec1603a83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560008301527f732062656c6f772070726f706f73616c207468726573686f6c640000000000006020830152604082019050919050565b6000613f27603f83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360008301527f74696f6e20696e666f726d6174696f6e206172697479206d69736d61746368006020830152604082019050919050565b6000613f8d604583615479565b91507f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460008301527f696e6741646d696e3a2073656e646572206d75737420626520676f762067756160208301527f726469616e0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614019604483615479565b91507f476f7665726e6f723a3a5f63617374566f74653a206e6f20656c696769626c6560008301527f20766f746573207072696f7220746f2070726f706f73616c207374617274206260208301527f6c6f636b000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006140a5602383615479565b91507f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e79206163746960008301527f6f6e7300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061410b603183615479565b91507f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060008301527f65786563757465642070726f706f73616c0000000000000000000000000000006020830152604082019050919050565b600061417160028361548a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006141b1602783615479565b91507f476f7665726e6f723a3a70726f706f73653a206d7573742070726f766964652060008301527f616374696f6e73000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614217605483615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f6164792070656e64696e672070726f706f73616c0000000000000000000000006040830152606082019050919050565b60006142a3604783615479565b91507f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560008301527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f76206760208301527f7561726469616e000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061432f601883615479565b91507f73657450656e64696e6741646d696e28616464726573732900000000000000006000830152602082019050919050565b600061436f602483615479565b91507f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f736160008301527f6c206964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006143d5605383615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f616479206163746976652070726f706f73616c000000000000000000000000006040830152606082019050919050565b6000614461603283615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657320657863656560008301527f647320656c696769626c6520616d6f756e7400000000000000000000000000006020830152604082019050919050565b60006144c7604083615479565b91507f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e2060008301527f6f6e6c79206265206578656375746564206966206974206973207175657565646020830152604082019050919050565b600061452d601183615479565b91507f6164646974696f6e206f766572666c6f770000000000000000000000000000006000830152602082019050919050565b600061456d603183615479565b91507f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d757360008301527f7420626520676f7620677561726469616e0000000000000000000000000000006020830152604082019050919050565b60006145d3603f83615479565b91507f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360008301527f616c20616374696f6e20616c72656164792071756575656420617420657461006020830152604082019050919050565b6000614639603483615479565b91507f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060008301527f6d75737420626520676f7620677561726469616e0000000000000000000000006020830152604082019050919050565b600061469f602883615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c72656160008301527f647920766f7465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614705602a83615479565b91507f476f7665726e6f723a3a63616e63656c3a2070726f706f7365722061626f766560008301527f207468726573686f6c64000000000000000000000000000000000000000000006020830152604082019050919050565b600061476b602583615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74696e67206973206360008301527f6c6f7365640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006147d1601583615479565b91507f7375627472616374696f6e20756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000614811603f83615479565b91507f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60008301527f6c792062652071756575656420696620697420697320737563636565646564006020830152604082019050919050565b6000614877602a83615479565b91507f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c696460008301527f207369676e6174757265000000000000000000000000000000000000000000006020830152604082019050919050565b6060820160008201516148e66000850182613c32565b5060208201516148f96020850182613c32565b50604082015161490c604085018261494e565b50505050565b61491b816154f0565b82525050565b61492a816154f0565b82525050565b614939816154fa565b82525050565b614948816155c1565b82525050565b61495781615507565b82525050565b61496681615507565b82525050565b600061497782614164565b91506149838285613c5f565b6020820191506149938284613c5f565b6020820191508190509392505050565b60006020820190506149b86000830184613a7d565b92915050565b60006040820190506149d36000830185613a5f565b6149e06020830184614921565b9392505050565b600060a0820190506149fc6000830187613a7d565b614a096020830186613da4565b8181036040830152614a1a81614322565b90508181036060830152614a2e8185613caf565b9050614a3d6080830184614921565b95945050505050565b6000604082019050614a5b6000830185613a7d565b614a686020830184614921565b9392505050565b6000608082019050614a846000830187613a7d565b614a916020830186614921565b614a9e6040830185613c41565b614aab606083018461493f565b95945050505050565b600060a082019050614ac96000830188613a7d565b614ad66020830187614921565b8181036040830152614ae88186613dec565b90508181036060830152614afc8185613caf565b9050614b0b6080830184614921565b9695505050505050565b600060a082019050614b2a6000830188613a7d565b614b376020830187614921565b8181036040830152614b498186613e25565b90508181036060830152614b5d8185613ce8565b9050614b6c6080830184614921565b9695505050505050565b6000604082019050614b8b6000830185613a7d565b614b98602083018461495d565b9392505050565b60006080820190508181036000830152614bb98187613a8c565b90508181036020830152614bcd8186613bd4565b90508181036040830152614be18185613b5f565b90508181036060830152614bf58184613aea565b905095945050505050565b6000602082019050614c156000830184613c50565b92915050565b6000608082019050614c306000830187613c50565b614c3d6020830186613c50565b614c4a6040830185614921565b614c576060830184613a7d565b95945050505050565b6000606082019050614c756000830186613c50565b614c826020830185614921565b614c8f6040830184613c41565b949350505050565b6000608082019050614cac6000830187613c50565b614cb96020830186614930565b614cc66040830185613c50565b614cd36060830184613c50565b95945050505050565b6000602082019050614cf16000830184613d77565b92915050565b6000602082019050614d0c6000830184613d86565b92915050565b6000602082019050614d276000830184613d95565b92915050565b60006020820190508181036000830152614d478184613dec565b905092915050565b60006020820190508181036000830152614d6881613eb4565b9050919050565b60006020820190508181036000830152614d8881613f1a565b9050919050565b60006020820190508181036000830152614da881613f80565b9050919050565b60006020820190508181036000830152614dc88161400c565b9050919050565b60006020820190508181036000830152614de881614098565b9050919050565b60006020820190508181036000830152614e08816140fe565b9050919050565b60006020820190508181036000830152614e28816141a4565b9050919050565b60006020820190508181036000830152614e488161420a565b9050919050565b60006020820190508181036000830152614e6881614296565b9050919050565b60006020820190508181036000830152614e8881614362565b9050919050565b60006020820190508181036000830152614ea8816143c8565b9050919050565b60006020820190508181036000830152614ec881614454565b9050919050565b60006020820190508181036000830152614ee8816144ba565b9050919050565b60006020820190508181036000830152614f0881614520565b9050919050565b60006020820190508181036000830152614f2881614560565b9050919050565b60006020820190508181036000830152614f48816145c6565b9050919050565b60006020820190508181036000830152614f688161462c565b9050919050565b60006020820190508181036000830152614f8881614692565b9050919050565b60006020820190508181036000830152614fa8816146f8565b9050919050565b60006020820190508181036000830152614fc88161475e565b9050919050565b60006020820190508181036000830152614fe8816147c4565b9050919050565b6000602082019050818103600083015261500881614804565b9050919050565b600060208201905081810360008301526150288161486a565b9050919050565b600060608201905061504460008301846148d0565b92915050565b600060208201905061505f6000830184614921565b92915050565b60006101208201905061507b600083018c614921565b615088602083018b613a5f565b818103604083015261509a818a613a8c565b905081810360608301526150ae8189613bd4565b905081810360808301526150c28188613b5f565b905081810360a08301526150d68187613aea565b90506150e560c0830186614921565b6150f260e0830185614921565b8181036101008301526151058184613dec565b90509a9950505050505050505050565b60006101408201905061512b600083018d614921565b615138602083018c613a7d565b615145604083018b614921565b615152606083018a614921565b61515f6080830189614921565b61516c60a0830188614921565b61517960c0830187614921565b61518660e0830186613c41565b615194610100830185613c41565b8181036101208301526151a78184613dec565b90509b9a5050505050505050505050565b60006040820190506151cd6000830185614921565b6151da6020830184614921565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156152085761520761561f565b5b8060405250919050565b600067ffffffffffffffff82111561522d5761522c61561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152595761525861561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152855761528461561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b1576152b061561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dd576152dc61561f565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561530d5761530c61561f565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154a0826154d0565b9050919050565b60008115159050919050565b6000819050919050565b60008190506154cb82615632565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061552a8261559d565b9050919050565b600061553c82615543565b9050919050565b600061554e826154d0565b9050919050565b600061556082615567565b9050919050565b6000615572826154d0565b9050919050565b6000615584826154bd565b9050919050565b6000615596826154f0565b9050919050565b60006155a8826155af565b9050919050565b60006155ba826154d0565b9050919050565b60006155cc82615507565b9050919050565b82818337600083830152505050565b60005b838110156156005780820151818401526020810190506155e5565b8381111561560f576000848401525b50505050565b6000819050919050565bfe5b6000601f19601f8301169050919050565b600881106156435761564261561f565b5b50565b61564f81615495565b811461565a57600080fd5b50565b615666816154a7565b811461567157600080fd5b50565b61567d816154b3565b811461568857600080fd5b50565b615694816154f0565b811461569f57600080fd5b50565b6156ab816154fa565b81146156b657600080fd5b50565b6156c281615507565b81146156cd57600080fd5b5056fea26469706673582212203bcdff51dddb7157bce315d5bf05fbc45ef9be050d0ff53a956113816b2ce1e864736f6c63430007030033", + "deployedBytecode": "0x6080604052600436106101b75760003560e01c8063760fbc13116100ec578063da35c6641161008a578063ddf0b00911610064578063ddf0b0091461060a578063deaaa7cc14610633578063e23a9a521461065e578063fe0d94c11461069b576101b7565b8063da35c66414610579578063da95691a146105a4578063dbfa977f146105e1576101b7565b806394a08d58116100c657806394a08d58146104e1578063b58131b01461050c578063b9a6196114610537578063d33219b41461054e576101b7565b8063760fbc13146104765780637bdbe4d01461048d57806391500671146104b8576101b7565b8063328dd9821161015957806340e58ee51161013357806340e58ee5146103bc578063452a9320146103e55780634925ec55146104105780635d2546081461044d576101b7565b8063328dd982146103145780633932abb1146103545780633e4f49e61461037f576101b7565b806317977c611161019557806317977c611461025857806320606b701461029557806321f43e42146102c057806324bc1a64146102e9576101b7565b8063013cf08b146101bc57806302a251a31461020257806306fdde031461022d575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de9190613878565b6106b7565b6040516101f99a99989796959493929190615115565b60405180910390f35b34801561020e57600080fd5b506102176107dd565b604051610224919061504a565b60405180910390f35b34801561023957600080fd5b506102426107e7565b60405161024f9190614d2d565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a9190613668565b610820565b60405161028c919061504a565b60405180910390f35b3480156102a157600080fd5b506102aa610838565b6040516102b79190614c00565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e291906136ba565b61085c565b005b3480156102f557600080fd5b506102fe6109e7565b60405161030b919061504a565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613878565b610c0e565b60405161034b9493929190614b9f565b60405180910390f35b34801561036057600080fd5b50610369610eeb565b604051610376919061504a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613878565b610ef4565b6040516103b39190614d12565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613878565b6110d7565b005b3480156103f157600080fd5b506103fa61146f565b60405161040791906149a3565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190613878565b611495565b6040516104449190614d2d565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190613906565b61154d565b005b34801561048257600080fd5b5061048b611738565b005b34801561049957600080fd5b506104a261180c565b6040516104af919061504a565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906136ba565b611815565b005b3480156104ed57600080fd5b506104f661199b565b6040516105039190614cdc565b60405180910390f35b34801561051857600080fd5b506105216119c1565b60405161052e919061504a565b60405180910390f35b34801561054357600080fd5b5061054c6119d3565b005b34801561055a57600080fd5b50610563611ae5565b6040516105709190614cf7565b60405180910390f35b34801561058557600080fd5b5061058e611b09565b60405161059b919061504a565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906136f6565b611b0f565b6040516105d8919061504a565b60405180910390f35b3480156105ed57600080fd5b506106086004803603810190610603919061398f565b612070565b005b34801561061657600080fd5b50610631600480360381019061062c9190613878565b612081565b005b34801561063f57600080fd5b506106486123cc565b6040516106559190614c00565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906138ca565b6123f0565b604051610692919061502f565b60405180910390f35b6106b560048036038101906106b09190613878565b6124d2565b005b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900460ff169080600b0160019054906101000a900460ff169080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b505050505090508a565b6000614380905090565b6040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f7200000000000000000000000081525081565b60056020528060005260406000206000915090505481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390614e4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161095c91906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161098b94939291906149e7565b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109e29190613837565b505050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae80d9de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190613691565b6040518263ffffffff1660e01b8152600401610ae491906149a3565b60206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3491906138a1565b9050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba157600080fd5b505afa158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd991906138a1565b03905060008114610c0057610bf7610bf282601961271b565b612765565b92505050610c0b565b649341498e01925050505b90565b60608060608060006004600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610cbc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c72575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610d0e57602002820191906000526020600020905b815481526020019060010190808311610cfa575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610df2578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b505050505081526020019060010190610d36565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ed5578382906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ec15780601f10610e9657610100808354040283529160200191610ec1565b820191906000526020600020905b815481529060010190602001808311610ea457829003601f168201915b505050505081526020019060010190610e19565b5050505090509450945094509450509193509193565b60006001905090565b60008160035410158015610f085750600082115b610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90614e6f565b60405180910390fd5b600060046000848152602001908152602001600020905080600b0160009054906101000a900460ff1615610f7f5760029150506110d2565b80600701544311610f945760009150506110d2565b80600801544311610fa95760019150506110d2565b80600a01548160090154111580610fca5750610fc36109e7565b8160090154105b15610fd95760039150506110d2565b600081600201541415610ff05760049150506110d2565b80600b0160019054906101000a900460ff16156110115760079150506110d2565b6110bc816002015460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c1a287e26040518163ffffffff1660e01b815260040160206040518083038186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b791906138a1565b6127aa565b42106110cc5760069150506110d2565b60059150505b919050565b60006110e282610ef4565b90506007808111156110f057fe5b8160078111156110fc57fe5b141561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490614def565b60405180910390fd5b6000600460008481526020019081526020016000209050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129e57506111b36119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112214360016127ff565b6040518363ffffffff1660e01b815260040161123e929190614a46565b60206040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128e91906139de565b6bffffffffffffffffffffffff16105b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490614f8f565b60405180910390fd5b600181600b0160006101000a81548160ff02191690831515021790555060005b81600301805490508110156114325760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591fcdfe83600301838154811061135757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401848154811061139157fe5b90600052602060002001548560050185815481106113ab57fe5b906000526020600020018660060186815481106113c457fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016113f3959493929190614b15565b600060405180830381600087803b15801561140d57600080fd5b505af1158015611421573d6000803e3d6000fd5b5050505080806001019150506112fd565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051611462919061504a565b60405180910390a1505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060046000838152602001908152602001600020600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b50505050509050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280601481526020017f436c696d6174652044414f20476f7665726e6f72000000000000000000000000815250805190602001206115b561284f565b306040516020016115c99493929190614c1b565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee888860405160200161161893929190614c60565b6040516020818303038152906040528051906020012090506000828260405160200161164592919061496c565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516116829493929190614c97565b6020604051602081039080840390855afa1580156116a4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117179061500f565b60405180910390fd5b61172c818b8b8861285c565b50505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90614f0f565b60405180910390fd5b6000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90614d8f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560405160200161191591906149a3565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161194494939291906149e7565b602060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611996919061380e565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000611b196119c1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe133611b634360016127ff565b6040518363ffffffff1660e01b8152600401611b809291906149be565b60206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906139de565b6bffffffffffffffffffffffff1611611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590614d4f565b60405180910390fd5b84518651148015611c30575083518651145b8015611c3d575082518651145b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390614d6f565b60405180910390fd5b600086511415611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890614e0f565b60405180910390fd5b611cc961180c565b86511115611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390614dcf565b60405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611e1b576000611d6382610ef4565b905060016007811115611d7257fe5b816007811115611d7e57fe5b1415611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690614e8f565b60405180910390fd5b60006007811115611dcc57fe5b816007811115611dd857fe5b1415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614e2f565b60405180910390fd5b505b6000611e2e43611e29610eeb565b6127aa565b90506000611e4382611e3e6107dd565b6127aa565b9050600360008154809291906001019190505550600060046000600354815260200190815260200160002090506003548160000181905550338160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000816002018190555089816003019080519060200190611ee0929190612ed8565b5088816004019080519060200190611ef9929190612f62565b5087816005019080519060200190611f12929190612faf565b5086816006019080519060200190611f2b92919061300f565b5082816007018190555081816008018190555060008160090181905550600081600a0181905550600081600b0160006101000a81548160ff021916908315150217905550600081600b0160016101000a81548160ff0219169083151502179055508581600c019080519060200190611fa492919061306f565b508060000154600560008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000154338c8c8c8c89898e60405161205499989796959493929190615065565b60405180910390a1806000015494505050505095945050505050565b61207c3384848461285c565b505050565b6004600781111561208e57fe5b61209782610ef4565b60078111156120a257fe5b146120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d990614fef565b60405180910390fd5b600060046000838152602001908152602001600020905060006121a24260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561216557600080fd5b505afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d91906138a1565b6127aa565b905060005b8260030180549050811015612384576123778360030182815481106121c857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600401838154811061220257fe5b906000526020600020015485600501848154811061221c57fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122ba5780601f1061228f576101008083540402835291602001916122ba565b820191906000526020600020905b81548152906001019060200180831161229d57829003601f168201915b50505050508660060185815481106122ce57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561236c5780601f106123415761010080835404028352916020019161236c565b820191906000526020600020905b81548152906001019060200180831161234f57829003601f168201915b505050505086612ca5565b80806001019150506121a7565b508082600201819055507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289283826040516123bf9291906151b8565b60405180910390a1505050565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b6123f86130ef565b60046000848152602001908152602001600020600d0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905092915050565b600560078111156124df57fe5b6124e882610ef4565b60078111156124f357fe5b14612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90614ecf565b60405180910390fd5b6000600460008381526020019081526020016000209050600181600b0160016101000a81548160ff02191690831515021790555060005b81600301805490508110156126df5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630825f38f8360040183815481106125c457fe5b90600052602060002001548460030184815481106125de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401858154811061261857fe5b906000526020600020015486600501868154811061263257fe5b9060005260206000200187600601878154811061264b57fe5b9060005260206000200188600201546040518763ffffffff1660e01b815260040161267a959493929190614b15565b6000604051808303818588803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906126d19190613837565b50808060010191505061256a565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161270f919061504a565b60405180910390a15050565b600061275d83836040518060400160405280601081526020017f6469766973696f6e206279207a65726f00000000000000000000000000000000815250612e77565b905092915050565b6000806002600184018161277557fe5b0490508291505b818110156127a45780915060028182858161279357fe5b04018161279c57fe5b04905061277c565b50919050565b6000808284019050838110156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90614eef565b60405180910390fd5b8091505092915050565b600082821115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614fcf565b60405180910390fd5b818303905092915050565b6000804690508091505090565b6001600781111561286957fe5b61287284610ef4565b600781111561287d57fe5b146128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614faf565b60405180910390fd5b6000600460008581526020019081526020016000209050600081600d0160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff16151514612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614f6f565b60405180910390fd5b6000836bffffffffffffffffffffffff16116129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990614daf565b60405180910390fd5b60008160000160029054906101000a90046bffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663782d6fe18986600701546040518363ffffffff1660e01b8152600401612a42929190614a46565b60206040518083038186803b158015612a5a57600080fd5b505afa158015612a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9291906139de565b039050806bffffffffffffffffffffffff16846bffffffffffffffffffffffff161115612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb90614eaf565b60405180910390fd5b6000612b0d856bffffffffffffffffffffffff16612765565b90508515612b3e57612b318460090154826bffffffffffffffffffffffff166127aa565b8460090181905550612b63565b612b5a84600a0154826bffffffffffffffffffffffff166127aa565b84600a01819055505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372d3ee9e89876040518363ffffffff1660e01b8152600401612bc0929190614b76565b600060405180830381600087803b158015612bda57600080fd5b505af1158015612bee573d6000803e3d6000fd5b5050505060018360000160006101000a81548160ff021916908315150217905550858360000160016101000a81548160ff021916908315150217905550808360000160026101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4688888884604051612c939493929190614a6f565b60405180910390a15050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2b065378686868686604051602001612cfa959493929190614ab4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401612d2c9190614c00565b60206040518083038186803b158015612d4457600080fd5b505afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906137e5565b15612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db390614f2f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a66f90186868686866040518663ffffffff1660e01b8152600401612e1d959493929190614ab4565b602060405180830381600087803b158015612e3757600080fd5b505af1158015612e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6f919061380e565b505050505050565b60008083118290612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb59190614d2d565b60405180910390fd5b506000838581612eca57fe5b049050809150509392505050565b828054828255906000526020600020908101928215612f51579160200282015b82811115612f505782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612ef8565b5b509050612f5e9190613122565b5090565b828054828255906000526020600020908101928215612f9e579160200282015b82811115612f9d578251825591602001919060010190612f82565b5b509050612fab9190613122565b5090565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffd578251829080519060200190612fed92919061306f565b5091602001919060010190612fcf565b5b50905061300b919061313f565b5090565b82805482825590600052602060002090810192821561305e579160200282015b8281111561305d57825182908051906020019061304d929190613163565b509160200191906001019061302f565b5b50905061306b91906131e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b057805160ff19168380011785556130de565b828001600101855582156130de579182015b828111156130dd5782518255916020019190600101906130c2565b5b5090506130eb9190613122565b5090565b604051806060016040528060001515815260200160001515815260200160006bffffffffffffffffffffffff1681525090565b5b8082111561313b576000816000905550600101613123565b5090565b5b8082111561315f57600081816131569190613207565b50600101613140565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131a457805160ff19168380011785556131d2565b828001600101855582156131d2579182015b828111156131d15782518255916020019190600101906131b6565b5b5090506131df9190613122565b5090565b5b8082111561320357600081816131fa919061324f565b506001016131e4565b5090565b50805460018160011615610100020316600290046000825580601f1061322d575061324c565b601f01602090049060005260206000209081019061324b9190613122565b5b50565b50805460018160011615610100020316600290046000825580601f106132755750613294565b601f0160209004906000526020600020908101906132939190613122565b5b50565b6000813590506132a681615646565b92915050565b6000815190506132bb81615646565b92915050565b600082601f8301126132d257600080fd5b81356132e56132e082615212565b6151e1565b9150818183526020840193506020810190508385602084028201111561330a57600080fd5b60005b8381101561333a57816133208882613297565b84526020840193506020830192505060018101905061330d565b5050505092915050565b600082601f83011261335557600080fd5b81356133686133638261523e565b6151e1565b9150818183526020840193506020810190508360005b838110156133ae57813586016133948882613503565b84526020840193506020830192505060018101905061337e565b5050505092915050565b600082601f8301126133c957600080fd5b81356133dc6133d78261526a565b6151e1565b9150818183526020840193506020810190508360005b83811015613422578135860161340888826135ab565b8452602084019350602083019250506001810190506133f2565b5050505092915050565b600082601f83011261343d57600080fd5b813561345061344b82615296565b6151e1565b9150818183526020840193506020810190508385602084028201111561347557600080fd5b60005b838110156134a5578161348b88826135ff565b845260208401935060208301925050600181019050613478565b5050505092915050565b6000813590506134be8161565d565b92915050565b6000815190506134d38161565d565b92915050565b6000813590506134e881615674565b92915050565b6000815190506134fd81615674565b92915050565b600082601f83011261351457600080fd5b8135613527613522826152c2565b6151e1565b9150808252602083016020830185838301111561354357600080fd5b61354e8382846155d3565b50505092915050565b600082601f83011261356857600080fd5b815161357b613576826152c2565b6151e1565b9150808252602083016020830185838301111561359757600080fd5b6135a28382846155e2565b50505092915050565b600082601f8301126135bc57600080fd5b81356135cf6135ca826152f2565b6151e1565b915080825260208301602083018583830111156135eb57600080fd5b6135f68382846155d3565b50505092915050565b60008135905061360e8161568b565b92915050565b6000815190506136238161568b565b92915050565b600081359050613638816156a2565b92915050565b60008135905061364d816156b9565b92915050565b600081519050613662816156b9565b92915050565b60006020828403121561367a57600080fd5b600061368884828501613297565b91505092915050565b6000602082840312156136a357600080fd5b60006136b1848285016132ac565b91505092915050565b600080604083850312156136cd57600080fd5b60006136db85828601613297565b92505060206136ec858286016135ff565b9150509250929050565b600080600080600060a0868803121561370e57600080fd5b600086013567ffffffffffffffff81111561372857600080fd5b613734888289016132c1565b955050602086013567ffffffffffffffff81111561375157600080fd5b61375d8882890161342c565b945050604086013567ffffffffffffffff81111561377a57600080fd5b613786888289016133b8565b935050606086013567ffffffffffffffff8111156137a357600080fd5b6137af88828901613344565b925050608086013567ffffffffffffffff8111156137cc57600080fd5b6137d8888289016135ab565b9150509295509295909350565b6000602082840312156137f757600080fd5b6000613805848285016134c4565b91505092915050565b60006020828403121561382057600080fd5b600061382e848285016134ee565b91505092915050565b60006020828403121561384957600080fd5b600082015167ffffffffffffffff81111561386357600080fd5b61386f84828501613557565b91505092915050565b60006020828403121561388a57600080fd5b6000613898848285016135ff565b91505092915050565b6000602082840312156138b357600080fd5b60006138c184828501613614565b91505092915050565b600080604083850312156138dd57600080fd5b60006138eb858286016135ff565b92505060206138fc85828601613297565b9150509250929050565b60008060008060008060c0878903121561391f57600080fd5b600061392d89828a016135ff565b965050602061393e89828a016134af565b955050604061394f89828a01613629565b945050606061396089828a016134d9565b935050608061397189828a016134d9565b92505060a061398289828a0161363e565b9150509295509295509295565b6000806000606084860312156139a457600080fd5b60006139b2868287016135ff565b93505060206139c3868287016134af565b92505060406139d48682870161363e565b9150509250925092565b6000602082840312156139f057600080fd5b60006139fe84828501613653565b91505092915050565b6000613a138383613a6e565b60208301905092915050565b6000613a2b8383613c76565b905092915050565b6000613a3f8383613db3565b905092915050565b6000613a538383614912565b60208301905092915050565b613a688161551f565b82525050565b613a7781615495565b82525050565b613a8681615495565b82525050565b6000613a978261538c565b613aa18185615402565b9350613aac83615322565b8060005b83811015613add578151613ac48882613a07565b9750613acf836153ce565b925050600181019050613ab0565b5085935050505092915050565b6000613af582615397565b613aff8185615413565b935083602082028501613b1185615332565b8060005b85811015613b4d5784840389528151613b2e8582613a1f565b9450613b39836153db565b925060208a01995050600181019050613b15565b50829750879550505050505092915050565b6000613b6a826153a2565b613b748185615424565b935083602082028501613b8685615342565b8060005b85811015613bc25784840389528151613ba38582613a33565b9450613bae836153e8565b925060208a01995050600181019050613b8a565b50829750879550505050505092915050565b6000613bdf826153ad565b613be98185615435565b9350613bf483615352565b8060005b83811015613c25578151613c0c8882613a47565b9750613c17836153f5565b925050600181019050613bf8565b5085935050505092915050565b613c3b816154a7565b82525050565b613c4a816154a7565b82525050565b613c59816154b3565b82525050565b613c70613c6b826154b3565b615615565b82525050565b6000613c81826153b8565b613c8b8185615446565b9350613c9b8185602086016155e2565b613ca481615621565b840191505092915050565b6000613cba826153b8565b613cc48185615457565b9350613cd48185602086016155e2565b613cdd81615621565b840191505092915050565b600081546001811660008114613d055760018114613d2b57613d6f565b607f6002830416613d168187615457565b955060ff198316865260208601935050613d6f565b60028204613d398187615457565b9550613d4485615362565b60005b82811015613d6657815481890152600182019150602081019050613d47565b80880195505050505b505092915050565b613d8081615531565b82525050565b613d8f81615555565b82525050565b613d9e81615579565b82525050565b613dad8161558b565b82525050565b6000613dbe826153c3565b613dc88185615468565b9350613dd88185602086016155e2565b613de181615621565b840191505092915050565b6000613df7826153c3565b613e018185615479565b9350613e118185602086016155e2565b613e1a81615621565b840191505092915050565b600081546001811660008114613e425760018114613e6857613eac565b607f6002830416613e538187615479565b955060ff198316865260208601935050613eac565b60028204613e768187615479565b9550613e8185615377565b60005b82811015613ea357815481890152600182019150602081019050613e84565b80880195505050505b505092915050565b6000613ec1603a83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560008301527f732062656c6f772070726f706f73616c207468726573686f6c640000000000006020830152604082019050919050565b6000613f27603f83615479565b91507f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360008301527f74696f6e20696e666f726d6174696f6e206172697479206d69736d61746368006020830152604082019050919050565b6000613f8d604583615479565b91507f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460008301527f696e6741646d696e3a2073656e646572206d75737420626520676f762067756160208301527f726469616e0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000614019604483615479565b91507f476f7665726e6f723a3a5f63617374566f74653a206e6f20656c696769626c6560008301527f20766f746573207072696f7220746f2070726f706f73616c207374617274206260208301527f6c6f636b000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006140a5602383615479565b91507f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e79206163746960008301527f6f6e7300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061410b603183615479565b91507f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060008301527f65786563757465642070726f706f73616c0000000000000000000000000000006020830152604082019050919050565b600061417160028361548a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006141b1602783615479565b91507f476f7665726e6f723a3a70726f706f73653a206d7573742070726f766964652060008301527f616374696f6e73000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614217605483615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f6164792070656e64696e672070726f706f73616c0000000000000000000000006040830152606082019050919050565b60006142a3604783615479565b91507f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560008301527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f76206760208301527f7561726469616e000000000000000000000000000000000000000000000000006040830152606082019050919050565b600061432f601883615479565b91507f73657450656e64696e6741646d696e28616464726573732900000000000000006000830152602082019050919050565b600061436f602483615479565b91507f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f736160008301527f6c206964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006143d5605383615479565b91507f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060008301527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560208301527f616479206163746976652070726f706f73616c000000000000000000000000006040830152606082019050919050565b6000614461603283615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657320657863656560008301527f647320656c696769626c6520616d6f756e7400000000000000000000000000006020830152604082019050919050565b60006144c7604083615479565b91507f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e2060008301527f6f6e6c79206265206578656375746564206966206974206973207175657565646020830152604082019050919050565b600061452d601183615479565b91507f6164646974696f6e206f766572666c6f770000000000000000000000000000006000830152602082019050919050565b600061456d603183615479565b91507f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d757360008301527f7420626520676f7620677561726469616e0000000000000000000000000000006020830152604082019050919050565b60006145d3603f83615479565b91507f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360008301527f616c20616374696f6e20616c72656164792071756575656420617420657461006020830152604082019050919050565b6000614639603483615479565b91507f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060008301527f6d75737420626520676f7620677561726469616e0000000000000000000000006020830152604082019050919050565b600061469f602883615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c72656160008301527f647920766f7465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614705602a83615479565b91507f476f7665726e6f723a3a63616e63656c3a2070726f706f7365722061626f766560008301527f207468726573686f6c64000000000000000000000000000000000000000000006020830152604082019050919050565b600061476b602583615479565b91507f476f7665726e6f723a3a5f63617374566f74653a20766f74696e67206973206360008301527f6c6f7365640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006147d1601583615479565b91507f7375627472616374696f6e20756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000614811603f83615479565b91507f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60008301527f6c792062652071756575656420696620697420697320737563636565646564006020830152604082019050919050565b6000614877602a83615479565b91507f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c696460008301527f207369676e6174757265000000000000000000000000000000000000000000006020830152604082019050919050565b6060820160008201516148e66000850182613c32565b5060208201516148f96020850182613c32565b50604082015161490c604085018261494e565b50505050565b61491b816154f0565b82525050565b61492a816154f0565b82525050565b614939816154fa565b82525050565b614948816155c1565b82525050565b61495781615507565b82525050565b61496681615507565b82525050565b600061497782614164565b91506149838285613c5f565b6020820191506149938284613c5f565b6020820191508190509392505050565b60006020820190506149b86000830184613a7d565b92915050565b60006040820190506149d36000830185613a5f565b6149e06020830184614921565b9392505050565b600060a0820190506149fc6000830187613a7d565b614a096020830186613da4565b8181036040830152614a1a81614322565b90508181036060830152614a2e8185613caf565b9050614a3d6080830184614921565b95945050505050565b6000604082019050614a5b6000830185613a7d565b614a686020830184614921565b9392505050565b6000608082019050614a846000830187613a7d565b614a916020830186614921565b614a9e6040830185613c41565b614aab606083018461493f565b95945050505050565b600060a082019050614ac96000830188613a7d565b614ad66020830187614921565b8181036040830152614ae88186613dec565b90508181036060830152614afc8185613caf565b9050614b0b6080830184614921565b9695505050505050565b600060a082019050614b2a6000830188613a7d565b614b376020830187614921565b8181036040830152614b498186613e25565b90508181036060830152614b5d8185613ce8565b9050614b6c6080830184614921565b9695505050505050565b6000604082019050614b8b6000830185613a7d565b614b98602083018461495d565b9392505050565b60006080820190508181036000830152614bb98187613a8c565b90508181036020830152614bcd8186613bd4565b90508181036040830152614be18185613b5f565b90508181036060830152614bf58184613aea565b905095945050505050565b6000602082019050614c156000830184613c50565b92915050565b6000608082019050614c306000830187613c50565b614c3d6020830186613c50565b614c4a6040830185614921565b614c576060830184613a7d565b95945050505050565b6000606082019050614c756000830186613c50565b614c826020830185614921565b614c8f6040830184613c41565b949350505050565b6000608082019050614cac6000830187613c50565b614cb96020830186614930565b614cc66040830185613c50565b614cd36060830184613c50565b95945050505050565b6000602082019050614cf16000830184613d77565b92915050565b6000602082019050614d0c6000830184613d86565b92915050565b6000602082019050614d276000830184613d95565b92915050565b60006020820190508181036000830152614d478184613dec565b905092915050565b60006020820190508181036000830152614d6881613eb4565b9050919050565b60006020820190508181036000830152614d8881613f1a565b9050919050565b60006020820190508181036000830152614da881613f80565b9050919050565b60006020820190508181036000830152614dc88161400c565b9050919050565b60006020820190508181036000830152614de881614098565b9050919050565b60006020820190508181036000830152614e08816140fe565b9050919050565b60006020820190508181036000830152614e28816141a4565b9050919050565b60006020820190508181036000830152614e488161420a565b9050919050565b60006020820190508181036000830152614e6881614296565b9050919050565b60006020820190508181036000830152614e8881614362565b9050919050565b60006020820190508181036000830152614ea8816143c8565b9050919050565b60006020820190508181036000830152614ec881614454565b9050919050565b60006020820190508181036000830152614ee8816144ba565b9050919050565b60006020820190508181036000830152614f0881614520565b9050919050565b60006020820190508181036000830152614f2881614560565b9050919050565b60006020820190508181036000830152614f48816145c6565b9050919050565b60006020820190508181036000830152614f688161462c565b9050919050565b60006020820190508181036000830152614f8881614692565b9050919050565b60006020820190508181036000830152614fa8816146f8565b9050919050565b60006020820190508181036000830152614fc88161475e565b9050919050565b60006020820190508181036000830152614fe8816147c4565b9050919050565b6000602082019050818103600083015261500881614804565b9050919050565b600060208201905081810360008301526150288161486a565b9050919050565b600060608201905061504460008301846148d0565b92915050565b600060208201905061505f6000830184614921565b92915050565b60006101208201905061507b600083018c614921565b615088602083018b613a5f565b818103604083015261509a818a613a8c565b905081810360608301526150ae8189613bd4565b905081810360808301526150c28188613b5f565b905081810360a08301526150d68187613aea565b90506150e560c0830186614921565b6150f260e0830185614921565b8181036101008301526151058184613dec565b90509a9950505050505050505050565b60006101408201905061512b600083018d614921565b615138602083018c613a7d565b615145604083018b614921565b615152606083018a614921565b61515f6080830189614921565b61516c60a0830188614921565b61517960c0830187614921565b61518660e0830186613c41565b615194610100830185613c41565b8181036101208301526151a78184613dec565b90509b9a5050505050505050505050565b60006040820190506151cd6000830185614921565b6151da6020830184614921565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156152085761520761561f565b5b8060405250919050565b600067ffffffffffffffff82111561522d5761522c61561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152595761525861561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152855761528461561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b1576152b061561f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dd576152dc61561f565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561530d5761530c61561f565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154a0826154d0565b9050919050565b60008115159050919050565b6000819050919050565b60008190506154cb82615632565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061552a8261559d565b9050919050565b600061553c82615543565b9050919050565b600061554e826154d0565b9050919050565b600061556082615567565b9050919050565b6000615572826154d0565b9050919050565b6000615584826154bd565b9050919050565b6000615596826154f0565b9050919050565b60006155a8826155af565b9050919050565b60006155ba826154d0565b9050919050565b60006155cc82615507565b9050919050565b82818337600083830152505050565b60005b838110156156005780820151818401526020810190506155e5565b8381111561560f576000848401525b50505050565b6000819050919050565bfe5b6000601f19601f8301169050919050565b600881106156435761564261561f565b5b50565b61564f81615495565b811461565a57600080fd5b50565b615666816154a7565b811461567157600080fd5b50565b61567d816154b3565b811461568857600080fd5b50565b615694816154f0565b811461569f57600080fd5b50565b6156ab816154fa565b81146156b657600080fd5b50565b6156c281615507565b81146156cd57600080fd5b5056fea26469706673582212203bcdff51dddb7157bce315d5bf05fbc45ef9be050d0ff53a956113816b2ce1e864736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.dbg.json new file mode 100644 index 00000000000..178fa323257 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.json new file mode 100644 index 00000000000..e104a33d77c --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Governor.sol/TimelockInterface.json @@ -0,0 +1,174 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TimelockInterface", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Governor.sol", + "abi": [ + { + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.dbg.json new file mode 100644 index 00000000000..178fa323257 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.json new file mode 100644 index 00000000000..46324853e70 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol/Timelock.json @@ -0,0 +1,444 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Timelock", + "sourceName": "src/main/solidity/net-emissions-token-network/Governance/Timelock.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "CancelTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "QueueTransaction", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAXIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "name": "setDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingAdmin_", + "type": "address" + } + ], + "name": "setPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051611f8d380380611f8d8339818101604052604081101561003357600080fd5b8101908080519060200190929190805190602001909291905050506202a3008110156100aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611f1e6037913960400191505060405180910390fd5b62278d00811115610106576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611f556038913960400191505060405180910390fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806002819055505050611dc08061015e6000396000f3fe6080604052600436106100c65760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e214610732578063e177246e1461075d578063f2b0653714610798578063f851a440146107e9576100cd565b80636a42b8f8146106b15780637d645fab146106dc578063b1b43ae514610707576100cd565b80630825f38f146100cf5780630e18b681146102ce57806326782247146102e55780633a66f901146103265780634dd18bf5146104cd578063591fcdfe1461051e576100cd565b366100cd57005b005b610253600480360360a08110156100e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061082a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102da57600080fd5b506102e3610e75565b005b3480156102f157600080fd5b506102fa611002565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033257600080fd5b506104b7600480360360a081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561039057600080fd5b8201836020820111156103a257600080fd5b803590602001918460018302840111640100000000831117156103c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611028565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b34801561052a57600080fd5b506106af600480360360a081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184600183028401116401000000008311171561065357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611505565b005b3480156106bd57600080fd5b506106c6611839565b6040518082815260200191505060405180910390f35b3480156106e857600080fd5b506106f161183f565b6040518082815260200191505060405180910390f35b34801561071357600080fd5b5061071c611846565b6040518082815260200191505060405180910390f35b34801561073e57600080fd5b5061074761184d565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107966004803603602081101561078057600080fd5b8101908080359060200190929190505050611854565b005b3480156107a457600080fd5b506107d1600480360360208110156107bb57600080fd5b81019080803590602001909291905050506119c9565b60405180821515815260200191505060405180910390f35b3480156107f557600080fd5b506107fe6119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611a9e6038913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561094657808201518184015260208101905061092b565b50505050905090810190601f1680156109735780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611bf1603d913960400191505060405180910390fd5b82610a7a611a0d565b1015610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b406045913960600191505060405180910390fd5b610ae76212750084611a1590919063ffffffff16565b610aef611a0d565b1115610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611b0d6033913960400191505060405180910390fd5b60006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506060600086511415610b8657849050610c22565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610bea5780518252602082019150602081019050602083039250610bc7565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610c725780518252602082019150602081019050602083039250610c4f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610cd4576040519150601f19603f3d011682016040523d82523d6000602084013e610cd9565b606091505b509150915081610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611cd4603d913960400191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610dc1578082015181840152602081019050610da6565b50505050905090810190601f168015610dee5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e27578082015181840152602081019050610e0c565b50505050905090810190601f168015610e545780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38094505050505095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c2e6038913960400191505060405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611c9e6036913960400191505060405180910390fd5b6110eb6002546110dd611a0d565b611a1590919063ffffffff16565b821015611143576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526049815260200180611d116049913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156111b957808201518184015260208101905061119e565b50505050905090810190601f1680156111e65780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561121f578082015181840152602081019050611204565b50505050905090810190601f16801561124c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561132757808201518184015260208101905061130c565b50505050905090810190601f1680156113545780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561138d578082015181840152602081019050611372565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38091505095945050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c666038913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611ad66037913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561161f578082015181840152602081019050611604565b50505050905090810190601f16801561164c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561168557808201518184015260208101905061166a565b50505050905090810190601f1680156116b25780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561178d578082015181840152602081019050611772565b50505050905090810190601f1680156117ba5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611d5a6031913960400191505060405180910390fd5b6202a300811015611934576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611b856034913960400191505060405180910390fd5b62278d00811115611990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611bb96038913960400191505060405180910390fd5b806002819055506002547f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042905090565b600080828401905083811015611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2ea2646970667358221220298d1a9d48fdb2c6d595dc900d59b1dc20137ab14eda1a6218198be2c18f409964736f6c6343000703003354696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e", + "deployedBytecode": "0x6080604052600436106100c65760003560e01c80636a42b8f81161007f578063c1a287e211610059578063c1a287e214610732578063e177246e1461075d578063f2b0653714610798578063f851a440146107e9576100cd565b80636a42b8f8146106b15780637d645fab146106dc578063b1b43ae514610707576100cd565b80630825f38f146100cf5780630e18b681146102ce57806326782247146102e55780633a66f901146103265780634dd18bf5146104cd578063591fcdfe1461051e576100cd565b366100cd57005b005b610253600480360360a08110156100e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460018302840111640100000000831117156101f757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061082a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102da57600080fd5b506102e3610e75565b005b3480156102f157600080fd5b506102fa611002565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033257600080fd5b506104b7600480360360a081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561039057600080fd5b8201836020820111156103a257600080fd5b803590602001918460018302840111640100000000831117156103c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611028565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b34801561052a57600080fd5b506106af600480360360a081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184600183028401116401000000008311171561065357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611505565b005b3480156106bd57600080fd5b506106c6611839565b6040518082815260200191505060405180910390f35b3480156106e857600080fd5b506106f161183f565b6040518082815260200191505060405180910390f35b34801561071357600080fd5b5061071c611846565b6040518082815260200191505060405180910390f35b34801561073e57600080fd5b5061074761184d565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107966004803603602081101561078057600080fd5b8101908080359060200190929190505050611854565b005b3480156107a457600080fd5b506107d1600480360360208110156107bb57600080fd5b81019080803590602001909291905050506119c9565b60405180821515815260200191505060405180910390f35b3480156107f557600080fd5b506107fe6119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611a9e6038913960400191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561094657808201518184015260208101905061092b565b50505050905090810190601f1680156109735780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156109ac578082015181840152602081019050610991565b50505050905090810190601f1680156109d95780820380516001836020036101000a031916815260200191505b509750505050505050506040516020818303038152906040528051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16610a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611bf1603d913960400191505060405180910390fd5b82610a7a611a0d565b1015610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180611b406045913960600191505060405180910390fd5b610ae76212750084611a1590919063ffffffff16565b610aef611a0d565b1115610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180611b0d6033913960400191505060405180910390fd5b60006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506060600086511415610b8657849050610c22565b85805190602001208560405160200180837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260040182805190602001908083835b60208310610bea5780518252602082019150602081019050602083039250610bc7565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b600060608973ffffffffffffffffffffffffffffffffffffffff1689846040518082805190602001908083835b60208310610c725780518252602082019150602081019050602083039250610c4f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610cd4576040519150601f19603f3d011682016040523d82523d6000602084013e610cd9565b606091505b509150915081610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611cd4603d913960400191505060405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b83811015610dc1578082015181840152602081019050610da6565b50505050905090810190601f168015610dee5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015610e27578082015181840152602081019050610e0c565b50505050905090810190601f168015610e545780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38094505050505095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c2e6038913960400191505060405180910390fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611c9e6036913960400191505060405180910390fd5b6110eb6002546110dd611a0d565b611a1590919063ffffffff16565b821015611143576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526049815260200180611d116049913960600191505060405180910390fd5b60008686868686604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156111b957808201518184015260208101905061119e565b50505050905090810190601f1680156111e65780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561121f578082015181840152602081019050611204565b50505050905090810190601f16801561124c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060016003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f88888888604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561132757808201518184015260208101905061130c565b50505050905090810190601f1680156113545780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561138d578082015181840152602081019050611372565b50505050905090810190601f1680156113ba5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a38091505095945050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611c666038913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75660405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180611ad66037913960400191505060405180910390fd5b60008585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561161f578082015181840152602081019050611604565b50505050905090810190601f16801561164c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561168557808201518184015260208101905061166a565b50505050905090810190601f1680156116b25780820380516001836020036101000a031916815260200191505b5097505050505050505060405160208183030381529060405280519060200120905060006003600083815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8787878787604051808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561178d578082015181840152602081019050611772565b50505050905090810190601f1680156117ba5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156117f35780820151818401526020810190506117d8565b50505050905090810190601f1680156118205780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050565b60025481565b62278d0081565b6202a30081565b6212750081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611d5a6031913960400191505060405180910390fd5b6202a300811015611934576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611b856034913960400191505060405180910390fd5b62278d00811115611990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180611bb96038913960400191505060405180910390fd5b806002819055506002547f948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c60405160405180910390a250565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600042905090565b600080828401905083811015611a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2ea2646970667358221220298d1a9d48fdb2c6d595dc900d59b1dc20137ab14eda1a6218198be2c18f409964736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.json new file mode 100644 index 00000000000..7a0a72a74fa --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol/NetEmissionsTokenNetwork.json @@ -0,0 +1,1337 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NetEmissionsTokenNetwork", + "sourceName": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredDealer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "availableBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "retiredBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "TokenRetired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredDealer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_CONSUMER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_EMISSIONS_AUDITOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_OFFSET_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_REC_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getAvailableAndRetired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getIssuer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNumOfUniqueTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getRoles", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenDetails", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "internalType": "struct NetEmissionsTokenNetwork.CarbonTokenDetails", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenRetiredAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenType", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isConsumerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDealerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issueOnBehalf", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "limitedMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "registerConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "registerDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_limitedMode", + "type": "bool" + } + ], + "name": "setLimitedMode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "name": "setTimelock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "unregisterConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "unregisterDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50617a2c80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212203e19fb657a96ebdd262380c1111e194766395468c5b1c9e60e8aaa9e8bcad1b264736f6c63430007030033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212203e19fb657a96ebdd262380c1111e194766395468c5b1c9e60e8aaa9e8bcad1b264736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.dbg.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.dbg.json new file mode 100644 index 00000000000..56c8534e4b7 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/0491b426f474e9f39ff17a1b59f43cee.json" +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.json b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.json new file mode 100644 index 00000000000..df31db60a60 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/json/generated/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol/NetEmissionsTokenNetworkV2.json @@ -0,0 +1,1337 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NetEmissionsTokenNetworkV2", + "sourceName": "src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "RegisteredDealer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "availableBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "retiredBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "TokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "TokenRetired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredConsumer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "UnregisteredDealer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_CONSUMER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_EMISSIONS_AUDITOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_OFFSET_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REGISTERED_REC_DEALER", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getAvailableAndRetired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getIssuer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNumOfUniqueTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getRoles", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenDetails", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dateCreated", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "internalType": "struct NetEmissionsTokenNetworkV2.CarbonTokenDetails", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenRetiredAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getTokenType", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_admin", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isConsumerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isDealerRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "issuee", + "type": "address" + }, + { + "internalType": "address", + "name": "issuer", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fromDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "thruDate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "automaticRetireDate", + "type": "uint256" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "string", + "name": "manifest", + "type": "string" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "issueOnBehalf", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "limitedMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "registerConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "registerDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_limitedMode", + "type": "bool" + } + ], + "name": "setLimitedMode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "name": "setTimelock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "unregisterConsumer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint8", + "name": "tokenTypeId", + "type": "uint8" + } + ], + "name": "unregisterDealer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50617a2c80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212208d412e79c4fc4b4c735ea4b2877a761c47805708ea7a440e845504b2d67edc4164736f6c63430007030033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102735760003560e01c80637f157c9b11610151578063ce6ccfaf116100c3578063e985e9c511610087578063e985e9c5146107f3578063f000be9814610823578063f242432a1461083f578063f851a4401461085b578063fcba794814610879578063fd0c4a9a1461089757610273565b8063ce6ccfaf1461074d578063d547741f14610781578063dba851b01461079d578063ddc3e6eb146107bb578063e2e564f2146107d757610273565b8063a217fddf11610115578063a217fddf1461067b578063a22cb46514610699578063bdacb303146106b5578063c1e03728146106d1578063c4d66de814610701578063ca15c8731461071d57610273565b80637f157c9b1461058a5780639010d07c146105bb57806391d14854146105eb57806392089c461461061b578063a0d975a71461064b57610273565b806331aa4b20116101ea57806353dbe982116101ae57806353dbe982146104b45780635ddb368f146104d057806369f7ef44146104ee57806376aed2e11461051e57806376ce47551461054e57806378e5c5921461056c57610273565b806331aa4b201461040057806333781a0e1461041c57806336568abe1461044c57806344b22fdd146104685780634e1273f41461048457610273565b806318a50d7e1161023c57806318a50d7e146103405780631ef68ef71461035e578063248a9ca31461037c578063293a7f2e146103ac5780632eb2c2d6146103c85780632f2ff15d146103e457610273565b8062fdd58e1461027857806301ffc9a7146102a8578063095bcdb6146102d85780630e89341c146102f4578063156e29f614610324575b600080fd5b610292600480360381019061028d9190615467565b6108b3565b60405161029f91906174f7565b60405180910390f35b6102c260048036038101906102bd9190615772565b61097d565b6040516102cf9190616eaa565b60405180910390f35b6102f260048036038101906102ed91906154a3565b6109e5565b005b61030e600480360381019061030991906157c4565b610bf7565b60405161031b9190616f33565b60405180910390f35b61033e600480360381019061033991906154a3565b610c9b565b005b610348610d9f565b6040516103559190616f18565b60405180910390f35b610366610dc3565b6040516103739190616f18565b60405180910390f35b610396600480360381019061039191906156d1565b610de7565b6040516103a39190616f18565b60405180910390f35b6103c660048036038101906103c19190615816565b610e07565b005b6103e260048036038101906103dd91906151ba565b6110c5565b005b6103fe60048036038101906103f991906156fa565b611486565b005b61041a600480360381019061041591906154f2565b6114fa565b005b61043660048036038101906104319190615155565b6116a1565b6040516104439190616eaa565b60405180910390f35b610466600480360381019061046191906156fa565b6116d4565b005b610482600480360381019061047d9190615155565b611757565b005b61049e6004803603810190610499919061563c565b611906565b6040516104ab9190616e51565b60405180910390f35b6104ce60048036038101906104c99190615155565b611a02565b005b6104d8611bb1565b6040516104e591906174f7565b60405180910390f35b61050860048036038101906105039190615155565b611bc2565b6040516105159190616eaa565b60405180910390f35b610538600480360381019061053391906157c4565b611c7c565b6040516105459190616f33565b60405180910390f35b610556611dd2565b6040516105639190616f18565b60405180910390f35b610574611df6565b6040516105819190616f18565b60405180910390f35b6105a4600480360381019061059f9190615467565b611e1a565b6040516105b2929190617512565b60405180910390f35b6105d560048036038101906105d09190615736565b611ec9565b6040516105e29190616d4b565b60405180910390f35b610605600480360381019061060091906156fa565b611efb565b6040516106129190616eaa565b60405180910390f35b610635600480360381019061063091906157c4565b611f2d565b6040516106429190616d4b565b60405180910390f35b61066560048036038101906106609190615467565b611f6d565b60405161067291906174f7565b60405180910390f35b610683612016565b6040516106909190616f18565b60405180910390f35b6106b360048036038101906106ae919061542b565b61201d565b005b6106cf60048036038101906106ca9190615155565b61219e565b005b6106eb60048036038101906106e691906157c4565b61222e565b6040516106f891906174d5565b60405180910390f35b61071b60048036038101906107169190615155565b61253d565b005b610737600480360381019061073291906156d1565b6127db565b60405161074491906174f7565b60405180910390f35b61076760048036038101906107629190615155565b612802565b604051610778959493929190616ec5565b60405180910390f35b61079b600480360381019061079691906156fa565b6128ef565b005b6107a5612963565b6040516107b29190616eaa565b60405180910390f35b6107d560048036038101906107d091906156a8565b612976565b005b6107f160048036038101906107ec91906154f2565b6129df565b005b61080d6004803603810190610808919061517e565b612b94565b60405161081a9190616eaa565b60405180910390f35b61083d60048036038101906108389190615308565b612c28565b005b61085960048036038101906108549190615279565b612cea565b005b61086361302d565b6040516108709190616d4b565b60405180910390f35b610881613053565b60405161088e9190616f18565b60405180910390f35b6108b160048036038101906108ac919061552e565b613077565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b90617015565b60405180910390fd5b6065600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000610a117f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610a3f7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610a6d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610a9b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610aa65750825b80610aae5750815b80610ab65750805b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90617455565b60405180910390fd5b610afe86613171565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b34906172b5565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390617255565b60405180910390fd5b610bee338888886040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250612cea565b50505050505050565b606060678054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c8f5780601f10610c6457610100808354040283529160200191610c8f565b820191906000526020600020905b815481529060010190602001808311610c7257829003601f168201915b50505050509050919050565b610ca86000801b33611efb565b610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90617135565b60405180910390fd5b610cf082613171565b610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690617095565b60405180910390fd5b60c960009054906101000a900460ff1615610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690617275565b60405180910390fd5b610d9a83838360405180602001604052806000815250613196565b505050565b7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf381565b7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f81565b600060976000838152602001908152602001600020600201549050919050565b6000610e337f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a33611efb565b90506000610e617f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000610e8f7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000610ebd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508380610ec85750825b80610ed05750815b80610ed85750805b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90617455565b60405180910390fd5b610f2086613171565b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690617055565b60405180910390fd5b610f6933876108b3565b851115610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290617195565b60405180910390fd5b610fb633878761337d565b6110198560cd600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f8f1b5ebb586d3d169e4ed07db9cd10ce0dd30c7b656171310eae7517c0b53cf987876040516110b5929190617512565b60405180910390a2505050505050565b8151835114611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090617415565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906171d5565b60405180910390fd5b6111816135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111c757506111c6856111c16135d2565b612b94565b5b611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906171f5565b60405180910390fd5b60006112106135d2565b90506112208187878787876135da565b60005b84518110156113f157600085828151811061123a57fe5b60200260200101519050600085838151811061125257fe5b602002602001015190506112d9816040518060600160405280602a81526020016179cd602a91396065600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611390816065600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611223565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611468929190616e73565b60405180910390a461147e81878787878761380b565b505050505050565b6114ad60976000848152602001908152602001600020600201546114a86135d2565b611efb565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390616fd5565b60405180910390fd5b6114f682826139db565b5050565b6115076000801b33611efb565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90617135565b60405180910390fd5b61154f81613a6f565b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590617295565b60405180910390fd5b60018160ff1614156115c9576115c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083611486565b611630565b60028160ff161415611604576115ff7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83611486565b61162f565b61162e7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83611486565b5b5b61165a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383611486565b8173ffffffffffffffffffffffffffffffffffffffff167fa8377deee15954185683d55effd369508b4935978c8cb2bab790bf04c570181460405160405180910390a25050565b60006116cd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a83611efb565b9050919050565b6116dc6135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090617495565b60405180910390fd5b6117538282613a9f565b5050565b60006117837f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006117b17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006117df7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b905082806117ea5750815b806117f25750805b611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611893576118536000801b33611efb565b611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906172d5565b60405180910390fd5b5b6118bd7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a85611486565b8373ffffffffffffffffffffffffffffffffffffffff167f69a0adee259d26fe61f4776f7bea7f3a9737c7321256821b985f988545efd31960405160405180910390a250505050565b6060815183511461194c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611943906173d5565b60405180910390fd5b6060835167ffffffffffffffff8111801561196657600080fd5b506040519080825280602002602001820160405280156119955781602001602082028036833780820191505090505b50905060005b84518110156119f7576119d48582815181106119b357fe5b60200260200101518583815181106119c757fe5b60200260200101516108b3565b8282815181106119e057fe5b60200260200101818152505080600101905061199b565b508091505092915050565b6000611a2e7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b90506000611a5c7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b90506000611a8a7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b90508280611a955750815b80611a9d5750805b611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390616ff5565b60405180910390fd5b60c960009054906101000a900460ff1615611b3e57611afe6000801b33611efb565b611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b34906170f5565b60405180910390fd5b5b611b687f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a856128ef565b8373ffffffffffffffffffffffffffffffffffffffff167f03a38088da75ee2d80f6c753f55f8fd17602ae17d8bd0ef44d5e1f28ab5af11f60405160405180910390a250505050565b6000611bbd60cb613b33565b905090565b600080611bef7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86084611efb565b90506000611c1d7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f85611efb565b90506000611c4b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c86611efb565b90508280611c565750815b80611c5e5750805b15611c6f5760019350505050611c77565b600093505050505b919050565b6060611c8782613171565b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90617115565b60405180910390fd5b600060cc6000848152602001908152602001600020905060018160010160009054906101000a900460ff1660ff161415611d38576040518060400160405280601c81526020017f52656e657761626c6520456e6572677920436572746966696361746500000000815250915050611dcd565b60028160010160009054906101000a900460ff1660ff161415611d93576040518060400160405280601781526020017f436172626f6e20456d697373696f6e73204f6666736574000000000000000000815250915050611dcd565b6040518060400160405280601181526020017f4175646974656420456d697373696f6e730000000000000000000000000000008152509150505b919050565b7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c81565b7f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a81565b6000806000611e2985856108b3565b905060003073ffffffffffffffffffffffffffffffffffffffff1663a0d975a787876040518363ffffffff1660e01b8152600401611e68929190616e28565b60206040518083038186803b158015611e8057600080fd5b505afa158015611e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb891906157ed565b905081819350935050509250929050565b6000611ef38260976000868152602001908152602001600020600001613b4190919063ffffffff16565b905092915050565b6000611f258260976000868152602001908152602001600020600001613b5b90919063ffffffff16565b905092915050565b600060cc600083815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f7882613171565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90617335565b60405180910390fd5b600060cd600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b6000801b81565b8173ffffffffffffffffffffffffffffffffffffffff1661203c6135d2565b73ffffffffffffffffffffffffffffffffffffffff161415612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a906173b5565b60405180910390fd5b80606660006120a06135d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661214d6135d2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121929190616eaa565b60405180910390a35050565b6121ab6000801b33611efb565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190617135565b60405180910390fd5b8060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612236614dd9565b60cc600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123e95780601f106123be576101008083540402835291602001916123e9565b820191906000526020600020905b8154815290600101906020018083116123cc57829003601f168201915b50505050508152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561248b5780601f106124605761010080835404028352916020019161248b565b820191906000526020600020905b81548152906001019060200180831161246e57829003601f168201915b50505050508152602001600982018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815250509050919050565b600060019054906101000a900460ff168061255c575061255b613b8b565b5b80612572575060008054906101000a900460ff16155b6125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a890617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015612601576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61261960405180602001604052806000815250613b9c565b6126637f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3613c9e565b6126706000801b83613d02565b61269a7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf383613d02565b6126c47f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86083613d02565b6126ee7fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f83613d02565b6127187fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c83613d02565b8160c960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060c960006101000a81548160ff02191690831515021790555080156127d75760008060016101000a81548160ff0219169083151502179055505b5050565b60006127fb60976000848152602001908152602001600020600001613d10565b9050919050565b6000806000806000806128186000801b88611efb565b905060006128467f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86089611efb565b905060006128747fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b905060006128a27fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8b611efb565b905060006128d07f5e1aa547d3dade8c68b013a47ad41c2bcc9b9e4b0765b0fb616780e15786e76a8c611efb565b9050848484848499509950995099509950505050505091939590929450565b61291660976000848152602001908152602001600020600201546129116135d2565b611efb565b612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90617175565b60405180910390fd5b61295f8282613a9f565b5050565b60c960009054906101000a900460ff1681565b6129836000801b33611efb565b6129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990617135565b60405180910390fd5b8060c960006101000a81548160ff02191690831515021790555050565b6129ec6000801b33611efb565b612a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2290617135565b60405180910390fd5b612a3481613a6f565b612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a906170b5565b60405180910390fd5b60018160ff161415612aae57612aa97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d860836128ef565b612b15565b60028160ff161415612ae957612ae47fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f836128ef565b612b14565b612b137fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c836128ef565b5b5b612b1e82611bc2565b612b4d57612b4c7ff8890eedd7900ad88da6192fd03dbb69dbeee963b1a0ed738abe49ab3331aaf3836128ef565b5b8173ffffffffffffffffffffffffffffffffffffffff167f98552ded770f1d05a505572f3387c108dbc6b566ea3d49f83cff3d1f1c72a04260405160405180910390a25050565b6000606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c8d5750612c8c6000801b33611efb565b5b612ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc390616f75565b60405180910390fd5b612cde8a8a8a8a8a8a8a8a8a8a613d25565b50505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d51906171d5565b60405180910390fd5b612d626135d2565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612da85750612da785612da26135d2565b612b94565b5b612de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dde906170d5565b60405180910390fd5b6000612df16135d2565b9050612e11818787612e028861452d565b612e0b8861452d565b876135da565b612e8e836040518060600160405280602a81526020016179cd602a91396065600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f45836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161300f929190617512565b60405180910390a461302581878787878761459d565b505050505050565b60c960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86081565b60006130a37f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d86033611efb565b905060006130d17fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f33611efb565b905060006130ff7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c33611efb565b9050828061310a5750815b806131125750805b613151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314890616ff5565b60405180910390fd5b6131638c338d8d8d8d8d8d8d8d613d25565b505050505050505050505050565b60008161317e60cb613b33565b1061318c5760019050613191565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90617435565b60405180910390fd5b60006132106135d2565b9050613231816000876132228861452d565b61322b8861452d565b876135da565b613294836065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b6065600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161335f929190617512565b60405180910390a46133768160008787878761459d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e490617235565b60405180910390fd5b60006133f76135d2565b9050613427818560006134098761452d565b6134128761452d565b604051806020016040528060008152506135da565b6134a4826040518060600160405280602481526020016179a9602491396065600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b69092919063ffffffff16565b6065600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62868660405161356f929190617512565b60405180910390a450505050565b6000808284019050838110156135c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135bf90617075565b60405180910390fd5b8091505092915050565b600033905090565b6135e886868686868661476d565b60005b83518110156137ad57600060cc600086848151811061360657fe5b60200260200101518152602001908152602001600020905060c960009054906101000a900460ff161561379e57600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561366e57506137a0565b60038160010160009054906101000a900460ff1660ff16146137335760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614806136ef57506136ee6000801b89611efb565b5b61372e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613725906174b5565b60405180910390fd5b61379d565b61375d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c89611efb565b61379c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379390617355565b60405180910390fd5b5b5b505b80806001019150506135eb565b50505050505050565b60008383111582906137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59190616f33565b60405180910390fd5b5082840390509392505050565b61382a8473ffffffffffffffffffffffffffffffffffffffff16614775565b156139d3578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401613870959493929190616d66565b602060405180830381600087803b15801561388a57600080fd5b505af19250505080156138bb57506040513d601f19601f820116820180604052508101906138b8919061579b565b60015b61394a576138c7617868565b806138d2575061390f565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139069190616f33565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394190616f55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146139d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139c890616fb5565b60405180910390fd5b505b505050505050565b613a03816097600085815260200190815260200160002060000161478890919063ffffffff16565b15613a6b57613a106135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000808260ff16118015613a87575060038260ff1611155b15613a955760019050613a9a565b600090505b919050565b613ac781609760008581526020019081526020016000206000016147b890919063ffffffff16565b15613b2f57613ad46135d2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b6000613b5083600001836147e8565b60001c905092915050565b6000613b83836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614855565b905092915050565b6000613b9630614775565b15905090565b600060019054906101000a900460ff1680613bbb5750613bba613b8b565b5b80613bd1575060008054906101000a900460ff16155b613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0790617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c60576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b613c68614878565b613c70614960565b613c7982614a58565b8015613c9a5760008060016101000a81548160ff0219169083151502179055505b5050565b806097600084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a48060976000848152602001908152602001600020600201819055505050565b613d0c82826139db565b5050565b6000613d1e82600001614b6a565b9050919050565b613d2e88613a6f565b613d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6490617475565b60405180910390fd5b60c960009054906101000a900460ff1615613f935760018860ff161480613d97575060028860ff16145b15613f175760ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2390617315565b60405180910390fd5b613e396000801b8b611efb565b613e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e6f90617395565b60405180910390fd5b613ea27f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b80613ed35750613ed27fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b5b613f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f09906171b5565b60405180910390fd5b613f8e565b60038860ff161415613f8d57613f4d7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b613f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f8390617375565b60405180910390fd5b5b5b614100565b60018860ff16141561400d57613fc97f2ab9f1da92e74aaa01eb75a871557505b11dd8d36832a34bb21bbee88b08d8608a611efb565b614008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fff906173f5565b60405180910390fd5b6140ff565b60028860ff161415614087576140437fede6574deba8f02ada7888448a497b08844d62e044ed533343a673be3ffcde5f8a611efb565b614082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407990617155565b60405180910390fd5b6140fe565b60038860ff1614156140fd576140bd7fe97dad3dbe5042e7384b1572cf966a15e089576a62b5126c5ef1d184ab18b12c8a611efb565b6140fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140f3906172f5565b60405180910390fd5b5b5b5b5b61410a60cb614b7b565b600060cc600061411a60cb613b33565b8152602001908152602001600020905061413460cb613b33565b8160000181905550888160010160006101000a81548160ff021916908360ff1602179055508a8160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508681600301819055508581600401819055508481600601819055504281600501819055508381600701908051906020019061421b929190614e62565b5082816008019080519060200190614234929190614e62565b508181600901908051906020019061424d929190614e62565b506142728b61425c60cb613b33565b8a60405180602001604052806000815250613196565b60038960ff1614156143b9576142b18160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600001548a61337d565b61433c8860cd60008460000154815260200190815260200160002060008460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461357d90919063ffffffff16565b60cd60008360000154815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f99cc3eeb446560c9a2d2483bc5160735ec0fb1851aea3bde32e7a56c30c11da68a60cd60008660000154815260200190815260200160002060008660020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485600001548660010160009054906101000a900460ff168760030154886004015489600601548a600501548b6007018c6008018d6009016040516145189b9a9998979695949392919061753b565b60405180910390a35050505050505050505050565b606080600167ffffffffffffffff8111801561454857600080fd5b506040519080825280602002602001820160405280156145775781602001602082028036833780820191505090505b509050828160008151811061458857fe5b60200260200101818152505080915050919050565b6145bc8473ffffffffffffffffffffffffffffffffffffffff16614775565b15614765578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401614602959493929190616dce565b602060405180830381600087803b15801561461c57600080fd5b505af192505050801561464d57506040513d601f19601f8201168201806040525081019061464a919061579b565b60015b6146dc57614659617868565b8061466457506146a1565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146989190616f33565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146d390616f55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614614763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161475a90616fb5565b60405180910390fd5b505b505050505050565b505050505050565b600080823b905060008111915050919050565b60006147b0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614b91565b905092915050565b60006147e0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b614c01565b905092915050565b600081836000018054905011614833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161482a90616f95565b60405180910390fd5b82600001828154811061484257fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600060019054906101000a900460ff16806148975750614896613b8b565b5b806148ad575060008054906101000a900460ff16155b6148ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148e390617215565b60405180910390fd5b60008060019054906101000a900460ff16159050801561493c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b801561495d5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061497f575061497e613b8b565b5b80614995575060008054906101000a900460ff16155b6149d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016149cb90617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614a24576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614a346301ffc9a760e01b614ce9565b8015614a555760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680614a775750614a76613b8b565b5b80614a8d575060008054906101000a900460ff16155b614acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614ac390617215565b60405180910390fd5b60008060019054906101000a900460ff161590508015614b1c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b614b2582614dbf565b614b3563d9b67a2660e01b614ce9565b614b45630e89341c60e01b614ce9565b8015614b665760008060016101000a81548160ff0219169083151502179055505b5050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b6000614b9d8383614855565b614bf6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614bfb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114614cdd5760006001820390506000600186600001805490500390506000866000018281548110614c4c57fe5b9060005260206000200154905080876000018481548110614c6957fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ca157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614ce3565b60009150505b92915050565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415614d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614d4990617035565b60405180910390fd5b600160336000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b8060679080519060200190614dd5929190614e62565b5050565b60405180610160016040528060008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614ea357805160ff1916838001178555614ed1565b82800160010185558215614ed1579182015b82811115614ed0578251825591602001919060010190614eb5565b5b509050614ede9190614ee2565b5090565b5b80821115614efb576000816000905550600101614ee3565b5090565b600081359050614f0e8161791e565b92915050565b600082601f830112614f2557600080fd5b8135614f38614f338261762c565b6175fb565b91508181835260208401935060208101905083856020840282011115614f5d57600080fd5b60005b83811015614f8d5781614f738882614eff565b845260208401935060208301925050600181019050614f60565b5050505092915050565b600082601f830112614fa857600080fd5b8135614fbb614fb682617658565b6175fb565b91508181835260208401935060208101905083856020840282011115614fe057600080fd5b60005b838110156150105781614ff68882615116565b845260208401935060208301925050600181019050614fe3565b5050505092915050565b60008135905061502981617935565b92915050565b60008135905061503e8161794c565b92915050565b60008135905061505381617963565b92915050565b60008151905061506881617963565b92915050565b600082601f83011261507f57600080fd5b813561509261508d82617684565b6175fb565b915080825260208301602083018583830111156150ae57600080fd5b6150b9838284617806565b50505092915050565b600082601f8301126150d357600080fd5b81356150e66150e1826176b4565b6175fb565b9150808252602083016020830185838301111561510257600080fd5b61510d838284617806565b50505092915050565b6000813590506151258161797a565b92915050565b60008151905061513a8161797a565b92915050565b60008135905061514f81617991565b92915050565b60006020828403121561516757600080fd5b600061517584828501614eff565b91505092915050565b6000806040838503121561519157600080fd5b600061519f85828601614eff565b92505060206151b085828601614eff565b9150509250929050565b600080600080600060a086880312156151d257600080fd5b60006151e088828901614eff565b95505060206151f188828901614eff565b945050604086013567ffffffffffffffff81111561520e57600080fd5b61521a88828901614f97565b935050606086013567ffffffffffffffff81111561523757600080fd5b61524388828901614f97565b925050608086013567ffffffffffffffff81111561526057600080fd5b61526c8882890161506e565b9150509295509295909350565b600080600080600060a0868803121561529157600080fd5b600061529f88828901614eff565b95505060206152b088828901614eff565b94505060406152c188828901615116565b93505060606152d288828901615116565b925050608086013567ffffffffffffffff8111156152ef57600080fd5b6152fb8882890161506e565b9150509295509295909350565b6000806000806000806000806000806101408b8d03121561532857600080fd5b60006153368d828e01614eff565b9a505060206153478d828e01614eff565b99505060406153588d828e01615140565b98505060606153698d828e01615116565b975050608061537a8d828e01615116565b96505060a061538b8d828e01615116565b95505060c061539c8d828e01615116565b94505060e08b013567ffffffffffffffff8111156153b957600080fd5b6153c58d828e016150c2565b9350506101008b013567ffffffffffffffff8111156153e357600080fd5b6153ef8d828e016150c2565b9250506101208b013567ffffffffffffffff81111561540d57600080fd5b6154198d828e016150c2565b9150509295989b9194979a5092959850565b6000806040838503121561543e57600080fd5b600061544c85828601614eff565b925050602061545d8582860161501a565b9150509250929050565b6000806040838503121561547a57600080fd5b600061548885828601614eff565b925050602061549985828601615116565b9150509250929050565b6000806000606084860312156154b857600080fd5b60006154c686828701614eff565b93505060206154d786828701615116565b92505060406154e886828701615116565b9150509250925092565b6000806040838503121561550557600080fd5b600061551385828601614eff565b925050602061552485828601615140565b9150509250929050565b60008060008060008060008060006101208a8c03121561554d57600080fd5b600061555b8c828d01614eff565b995050602061556c8c828d01615140565b985050604061557d8c828d01615116565b975050606061558e8c828d01615116565b965050608061559f8c828d01615116565b95505060a06155b08c828d01615116565b94505060c08a013567ffffffffffffffff8111156155cd57600080fd5b6155d98c828d016150c2565b93505060e08a013567ffffffffffffffff8111156155f657600080fd5b6156028c828d016150c2565b9250506101008a013567ffffffffffffffff81111561562057600080fd5b61562c8c828d016150c2565b9150509295985092959850929598565b6000806040838503121561564f57600080fd5b600083013567ffffffffffffffff81111561566957600080fd5b61567585828601614f14565b925050602083013567ffffffffffffffff81111561569257600080fd5b61569e85828601614f97565b9150509250929050565b6000602082840312156156ba57600080fd5b60006156c88482850161501a565b91505092915050565b6000602082840312156156e357600080fd5b60006156f18482850161502f565b91505092915050565b6000806040838503121561570d57600080fd5b600061571b8582860161502f565b925050602061572c85828601614eff565b9150509250929050565b6000806040838503121561574957600080fd5b60006157578582860161502f565b925050602061576885828601615116565b9150509250929050565b60006020828403121561578457600080fd5b600061579284828501615044565b91505092915050565b6000602082840312156157ad57600080fd5b60006157bb84828501615059565b91505092915050565b6000602082840312156157d657600080fd5b60006157e484828501615116565b91505092915050565b6000602082840312156157ff57600080fd5b600061580d8482850161512b565b91505092915050565b6000806040838503121561582957600080fd5b600061583785828601615116565b925050602061584885828601615116565b9150509250929050565b600061585e8383616d0f565b60208301905092915050565b6158738161777b565b82525050565b6158828161777b565b82525050565b600061589382617709565b61589d8185617737565b93506158a8836176e4565b8060005b838110156158d95781516158c08882615852565b97506158cb8361772a565b9250506001810190506158ac565b5085935050505092915050565b6158ef8161778d565b82525050565b6158fe81617799565b82525050565b600061590f82617714565b6159198185617748565b9350615929818560208601617815565b6159328161784a565b840191505092915050565b60006159488261771f565b6159528185617759565b9350615962818560208601617815565b61596b8161784a565b840191505092915050565b60006159818261771f565b61598b818561776a565b935061599b818560208601617815565b6159a48161784a565b840191505092915050565b6000815460018116600081146159cc57600181146159f257615a36565b607f60028304166159dd818761776a565b955060ff198316865260208601935050615a36565b60028204615a00818761776a565b9550615a0b856176f4565b60005b82811015615a2d57815481890152600182019150602081019050615a0e565b80880195505050505b505092915050565b6000615a4b60348361776a565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000615ab160358361776a565b91507f434c4d383a3a69737375654f6e426568616c663a2063616c6c206d757374206360008301527f6f6d652066726f6d2044414f206f722061646d696e00000000000000000000006020830152604082019050919050565b6000615b1760228361776a565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615b7d60288361776a565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615be3602f8361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b6000615c4960298361776a565b91507f434c4d383a3a6f6e6c794465616c65723a206d73672e73656e646572206e6f7460008301527f2061206465616c657200000000000000000000000000000000000000000000006020830152604082019050919050565b6000615caf602b8361776a565b91507f455243313135353a2062616c616e636520717565727920666f7220746865207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b6000615d15601c8361776a565b91507f4552433136353a20696e76616c696420696e74657266616365206964000000006000830152602082019050919050565b6000615d5560248361776a565b91507f434c4d383a3a7265746972653a20746f6b656e496420646f6573206e6f74206560008301527f78697374000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615dbb601b8361776a565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000615dfb60228361776a565b91507f434c4d383a3a6d696e743a20746f6b656e496420646f6573206e6f742065786960008301527f73740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615e6160328361776a565b91507f434c4d383a3a756e72656769737465724465616c65723a20746f6b656e54797060008301527f65496420646f6573206e6f7420657869737400000000000000000000000000006020830152604082019050919050565b6000615ec760298361776a565b91507f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008301527f20617070726f76656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000615f2d60468361776a565b91507f434c4d383a3a756e7265676973746572436f6e73756d6572286c696d6974656460008301527f293a206f6e6c792061646d696e2063616e20756e726567697374657220636f6e60208301527f73756d65727300000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000615fb9602a8361776a565b91507f434c4d383a3a676574546f6b656e547970653a20746f6b656e496420646f657360008301527f206e6f74206578697374000000000000000000000000000000000000000000006020830152604082019050919050565b600061601f60298361776a565b91507f434c4d383a3a6f6e6c7941646d696e3a206d73672e73656e646572206e6f742060008301527f7468652061646d696e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061608560338361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f7465726564206f6666736574206465616c6572000000000000000000000000006020830152604082019050919050565b60006160eb60308361776a565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b600061615160348361776a565b91507f434c4d383a3a7265746972653a206e6f7420656e6f75676820617661696c616260008301527f6c652062616c616e636520746f207265746972650000000000000000000000006020830152604082019050919050565b60006161b760378361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a2070726f706f7365722060008301527f6e6f7420612072656769737465726564206465616c65720000000000000000006020830152604082019050919050565b600061621d60258361776a565b91507f455243313135353a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061628360328361776a565b91507f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008301527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006020830152604082019050919050565b60006162e9602e8361776a565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600061634f60238361776a565b91507f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006163b560368361776a565b91507f434c4d383a3a7472616e736665723a2073656e64657220616e6420726563656960008301527f7665722063616e6e6f74206265207468652073616d65000000000000000000006020830152604082019050919050565b600061641b60328361776a565b91507f434c4d383a3a6d696e743a2063616e6e6f74206d696e74206e657720746f6b6560008301527f6e7320696e206c696d69746564206d6f646500000000000000000000000000006020830152604082019050919050565b600061648160308361776a565b91507f434c4d383a3a72656769737465724465616c65723a20746f6b656e547970654960008301527f6420646f6573206e6f74206578697374000000000000000000000000000000006020830152604082019050919050565b60006164e760268361776a565b91507f434c4d383a3a7472616e736665723a20746f6b656e496420646f6573206e6f7460008301527f20657869737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061654d60428361776a565b91507f434c4d383a3a7265676973746572436f6e73756d6572286c696d69746564293a60008301527f206f6e6c792061646d696e2063616e20726567697374657220636f6e73756d6560208301527f72730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b60006165d960378361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420656d697373696f6e732061756469746f720000000000000000006020830152604082019050919050565b600061663f602e8361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a206d73672e73656e646560008301527f72206e6f742074696d656c6f636b0000000000000000000000000000000000006020830152604082019050919050565b60006166a560338361776a565b91507f434c4d383a3a676574546f6b656e52657469726564416d6f756e743a20746f6b60008301527f656e496420646f6573206e6f74206578697374000000000000000000000000006020830152604082019050919050565b600061670b60588361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c7920656d697373696f6e732061756469746f72732063616e60208301527f206973737565206175646974656420656d697373696f6e7300000000000000006040830152606082019050919050565b600061679760408361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756572206e6f60008301527f742061207265676973746572656420656d697373696f6e732061756469746f726020830152604082019050919050565b60006167fd60278361776a565b91507f434c4d383a3a5f6973737565286c696d69746564293a20697373756565206e6f60008301527f742061646d696e000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061686360298361776a565b91507f455243313135353a2073657474696e6720617070726f76616c2073746174757360008301527f20666f722073656c6600000000000000000000000000000000000000000000006020830152604082019050919050565b60006168c960298361776a565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b600061692f60308361776a565b91507f434c4d383a3a5f69737375653a20697373756572206e6f74206120726567697360008301527f746572656420524543206465616c6572000000000000000000000000000000006020830152604082019050919050565b600061699560288361776a565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b60006169fb60218361776a565b91507f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616a61603d8361776a565b91507f434c4d383a3a636f6e73756d65724f724465616c65723a206d73672e73656e6460008301527f6572206e6f74206120636f6e73756d6572206f722061206465616c65720000006020830152604082019050919050565b6000616ac760248361776a565b91507f434c4d383a3a5f69737375653a20746f6b656e54797065496420697320696e7660008301527f616c6964000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616b2d602f8361776a565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000616b93604b8361776a565b91507f434c4d383a3a5f6265666f7265546f6b656e5472616e73666572286c696d697460008301527f6564293a206f6e6c792061646d696e20616e642044414f2063616e207472616e60208301527f7366657220746f6b656e730000000000000000000000000000000000000000006040830152606082019050919050565b600061016083016000830151616c2b6000860182616d0f565b506020830151616c3e6020860182616d2d565b506040830151616c51604086018261586a565b506060830151616c64606086018261586a565b506080830151616c776080860182616d0f565b5060a0830151616c8a60a0860182616d0f565b5060c0830151616c9d60c0860182616d0f565b5060e0830151616cb060e0860182616d0f565b50610100830151848203610100860152616cca828261593d565b915050610120830151848203610120860152616ce6828261593d565b915050610140830151848203610140860152616d02828261593d565b9150508091505092915050565b616d18816177ef565b82525050565b616d27816177ef565b82525050565b616d36816177f9565b82525050565b616d45816177f9565b82525050565b6000602082019050616d606000830184615879565b92915050565b600060a082019050616d7b6000830188615879565b616d886020830187615879565b8181036040830152616d9a8186615888565b90508181036060830152616dae8185615888565b90508181036080830152616dc28184615904565b90509695505050505050565b600060a082019050616de36000830188615879565b616df06020830187615879565b616dfd6040830186616d1e565b616e0a6060830185616d1e565b8181036080830152616e1c8184615904565b90509695505050505050565b6000604082019050616e3d6000830185615879565b616e4a6020830184616d1e565b9392505050565b60006020820190508181036000830152616e6b8184615888565b905092915050565b60006040820190508181036000830152616e8d8185615888565b90508181036020830152616ea18184615888565b90509392505050565b6000602082019050616ebf60008301846158e6565b92915050565b600060a082019050616eda60008301886158e6565b616ee760208301876158e6565b616ef460408301866158e6565b616f0160608301856158e6565b616f0e60808301846158e6565b9695505050505050565b6000602082019050616f2d60008301846158f5565b92915050565b60006020820190508181036000830152616f4d8184615976565b905092915050565b60006020820190508181036000830152616f6e81615a3e565b9050919050565b60006020820190508181036000830152616f8e81615aa4565b9050919050565b60006020820190508181036000830152616fae81615b0a565b9050919050565b60006020820190508181036000830152616fce81615b70565b9050919050565b60006020820190508181036000830152616fee81615bd6565b9050919050565b6000602082019050818103600083015261700e81615c3c565b9050919050565b6000602082019050818103600083015261702e81615ca2565b9050919050565b6000602082019050818103600083015261704e81615d08565b9050919050565b6000602082019050818103600083015261706e81615d48565b9050919050565b6000602082019050818103600083015261708e81615dae565b9050919050565b600060208201905081810360008301526170ae81615dee565b9050919050565b600060208201905081810360008301526170ce81615e54565b9050919050565b600060208201905081810360008301526170ee81615eba565b9050919050565b6000602082019050818103600083015261710e81615f20565b9050919050565b6000602082019050818103600083015261712e81615fac565b9050919050565b6000602082019050818103600083015261714e81616012565b9050919050565b6000602082019050818103600083015261716e81616078565b9050919050565b6000602082019050818103600083015261718e816160de565b9050919050565b600060208201905081810360008301526171ae81616144565b9050919050565b600060208201905081810360008301526171ce816161aa565b9050919050565b600060208201905081810360008301526171ee81616210565b9050919050565b6000602082019050818103600083015261720e81616276565b9050919050565b6000602082019050818103600083015261722e816162dc565b9050919050565b6000602082019050818103600083015261724e81616342565b9050919050565b6000602082019050818103600083015261726e816163a8565b9050919050565b6000602082019050818103600083015261728e8161640e565b9050919050565b600060208201905081810360008301526172ae81616474565b9050919050565b600060208201905081810360008301526172ce816164da565b9050919050565b600060208201905081810360008301526172ee81616540565b9050919050565b6000602082019050818103600083015261730e816165cc565b9050919050565b6000602082019050818103600083015261732e81616632565b9050919050565b6000602082019050818103600083015261734e81616698565b9050919050565b6000602082019050818103600083015261736e816166fe565b9050919050565b6000602082019050818103600083015261738e8161678a565b9050919050565b600060208201905081810360008301526173ae816167f0565b9050919050565b600060208201905081810360008301526173ce81616856565b9050919050565b600060208201905081810360008301526173ee816168bc565b9050919050565b6000602082019050818103600083015261740e81616922565b9050919050565b6000602082019050818103600083015261742e81616988565b9050919050565b6000602082019050818103600083015261744e816169ee565b9050919050565b6000602082019050818103600083015261746e81616a54565b9050919050565b6000602082019050818103600083015261748e81616aba565b9050919050565b600060208201905081810360008301526174ae81616b20565b9050919050565b600060208201905081810360008301526174ce81616b86565b9050919050565b600060208201905081810360008301526174ef8184616c12565b905092915050565b600060208201905061750c6000830184616d1e565b92915050565b60006040820190506175276000830185616d1e565b6175346020830184616d1e565b9392505050565b600061016082019050617551600083018e616d1e565b61755e602083018d616d1e565b61756b604083018c616d1e565b617578606083018b616d3c565b617585608083018a616d1e565b61759260a0830189616d1e565b61759f60c0830188616d1e565b6175ac60e0830187616d1e565b8181036101008301526175bf81866159af565b90508181036101208301526175d481856159af565b90508181036101408301526175e981846159af565b90509c9b505050505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561762257617621617848565b5b8060405250919050565b600067ffffffffffffffff82111561764757617646617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561767357617672617848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561769f5761769e617848565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156176cf576176ce617848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000617786826177cf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015617833578082015181840152602081019050617818565b83811115617842576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156178785761791b565b60046000803e61788960005161785b565b6308c379a0811461789a575061791b565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156178c65750505061791b565b808201805167ffffffffffffffff8111156178e557505050505061791b565b8060208301013d85018111156179005750505050505061791b565b6179098261784a565b60208401016040528296505050505050505b90565b6179278161777b565b811461793257600080fd5b50565b61793e8161778d565b811461794957600080fd5b50565b61795581617799565b811461796057600080fd5b50565b61796c816177a3565b811461797757600080fd5b50565b617983816177ef565b811461798e57600080fd5b50565b61799a816177f9565b81146179a557600080fd5b5056fe455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572a26469706673582212208d412e79c4fc4b4c735ea4b2877a761c47805708ea7a440e845504b2d67edc4164736f6c63430007030033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol new file mode 100644 index 00000000000..9e694dbe108 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol @@ -0,0 +1,367 @@ +pragma solidity ^0.7.0; +pragma experimental ABIEncoderV2; +// SPDX-License-Identifier: BSD-3-Clause + +/* Copyright 2021 Compound Labs, Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/Comp.sol +// Modified to work in the NetEmissionsTokenNetwork system + +contract DAOToken { + /// @notice EIP-20 token name for this token + string public constant name = "Climate DAO Token"; + + /// @notice EIP-20 token symbol for this token + string public constant symbol = "dCLM8"; + + /// @notice EIP-20 token decimals for this token + uint8 public constant decimals = 18; + + /// @notice Total number of tokens in circulation + uint public totalSupply = 10000000e18; // 10 million dCLM8 + + /// @notice Initial holder of all DAO tokens + address public initialHolder; + + /// @notice Governor to be set after deploy for permissions to burn tokens (only set once) + address public governor = address(0); + + /// @dev Allowance amounts on behalf of others + mapping (address => mapping (address => uint96)) internal allowances; + + /// @dev Official record of token balances for each account + mapping (address => uint96) internal balances; + + /// @notice A record of each accounts delegate + mapping (address => address) public delegates; + + /// @notice A checkpoint for marking number of votes from a given block + struct Checkpoint { + uint32 fromBlock; + uint96 votes; + } + + /// @notice A record of votes checkpoints for each account, by index + mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; + + /// @notice The number of checkpoints for each account + mapping (address => uint32) public numCheckpoints; + + /// @notice The EIP-712 typehash for the contract's domain + bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); + + /// @notice The EIP-712 typehash for the delegation struct used by the contract + bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); + + /// @notice A record of states for signing / validating signatures + mapping (address => uint) public nonces; + + /// @notice An event thats emitted when an account changes its delegate + event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); + + /// @notice An event thats emitted when a delegate account's vote balance changes + event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); + + /// @notice The standard EIP-20 transfer event + event Transfer(address indexed from, address indexed to, uint256 amount); + + /// @notice The standard EIP-20 approval event + event Approval(address indexed owner, address indexed spender, uint256 amount); + + /** + * @notice Construct a new dCLM8 token + * @param account The initial account to grant all the tokens + */ + constructor(address account) { + balances[account] = uint96(totalSupply); + initialHolder = account; + emit Transfer(address(0), account, totalSupply); + } + + /** + * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` + * @param account The address of the account holding the funds + * @param spender The address of the account spending the funds + * @return The number of tokens approved + */ + function allowance(address account, address spender) external view returns (uint) { + return allowances[account][spender]; + } + + /** + * @notice Approve `spender` to transfer up to `amount` from `src` + * @dev This will overwrite the approval amount for `spender` + * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) + * @param spender The address of the account which may transfer tokens + * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) + * @return Whether or not the approval succeeded + */ + function approve(address spender, uint rawAmount) external returns (bool) { + uint96 amount; + if (rawAmount == uint(-1)) { + amount = uint96(-1); + } else { + amount = safe96(rawAmount, "dCLM8::approve: amount exceeds 96 bits"); + } + + allowances[msg.sender][spender] = amount; + + emit Approval(msg.sender, spender, amount); + return true; + } + + /** + * @notice Get the number of tokens held by the `account` + * @param account The address of the account to get the balance of + * @return The number of tokens held + */ + function balanceOf(address account) external view returns (uint) { + return balances[account]; + } + + /** + * @notice Transfer `amount` tokens from `msg.sender` to `dst` + * @param dst The address of the destination account + * @param rawAmount The number of tokens to transfer + * @return Whether or not the transfer succeeded + */ + function transfer(address dst, uint rawAmount) external returns (bool) { + uint96 amount = safe96(rawAmount, "dCLM8::transfer: amount exceeds 96 bits"); + _transferTokens(msg.sender, dst, amount); + return true; + } + + /** + * @notice Transfer `amount` tokens from `src` to `dst` + * @param src The address of the source account + * @param dst The address of the destination account + * @param rawAmount The number of tokens to transfer + * @return Whether or not the transfer succeeded + */ + function transferFrom(address src, address dst, uint rawAmount) external returns (bool) { + address spender = msg.sender; + uint96 spenderAllowance = allowances[src][spender]; + uint96 amount = safe96(rawAmount, "dCLM8::approve: amount exceeds 96 bits"); + + if (spender != src && spenderAllowance != uint96(-1)) { + uint96 newAllowance = sub96(spenderAllowance, amount, "dCLM8::transferFrom: transfer amount exceeds spender allowance"); + allowances[src][spender] = newAllowance; + + emit Approval(src, spender, newAllowance); + } + + _transferTokens(src, dst, amount); + return true; + } + + /** + * @notice Delegate votes from `msg.sender` to `delegatee` + * @param delegatee The address to delegate votes to + */ + function delegate(address delegatee) public { + return _delegate(msg.sender, delegatee); + } + + /** + * @notice Delegates votes from signatory to `delegatee` + * @param delegatee The address to delegate votes to + * @param nonce The contract state required to match the signature + * @param expiry The time at which to expire the signature + * @param v The recovery byte of the signature + * @param r Half of the ECDSA signature pair + * @param s Half of the ECDSA signature pair + */ + function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public { + bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); + bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); + bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); + address signatory = ecrecover(digest, v, r, s); + require(signatory != address(0), "dCLM8::delegateBySig: invalid signature"); + require(nonce == nonces[signatory]++, "dCLM8::delegateBySig: invalid nonce"); + require(block.timestamp <= expiry, "dCLM8::delegateBySig: signature expired"); + return _delegate(signatory, delegatee); + } + + /** + * @notice Gets the current votes balance for `account` + * @param account The address to get votes balance + * @return The number of current votes for `account` + */ + function getCurrentVotes(address account) external view returns (uint96) { + uint32 nCheckpoints = numCheckpoints[account]; + return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; + } + + /** + * @notice Determine the prior number of votes for an account as of a block number + * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. + * @param account The address of the account to check + * @param blockNumber The block number to get the vote balance at + * @return The number of votes the account had as of the given block + */ + function getPriorVotes(address account, uint blockNumber) public view returns (uint96) { + require(blockNumber < block.number, "dCLM8::getPriorVotes: not yet determined"); + + uint32 nCheckpoints = numCheckpoints[account]; + if (nCheckpoints == 0) { + return 0; + } + + // First check most recent balance + if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { + return checkpoints[account][nCheckpoints - 1].votes; + } + + // Next check implicit zero balance + if (checkpoints[account][0].fromBlock > blockNumber) { + return 0; + } + + uint32 lower = 0; + uint32 upper = nCheckpoints - 1; + while (upper > lower) { + uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow + Checkpoint memory cp = checkpoints[account][center]; + if (cp.fromBlock == blockNumber) { + return cp.votes; + } else if (cp.fromBlock < blockNumber) { + lower = center; + } else { + upper = center - 1; + } + } + return checkpoints[account][lower].votes; + } + + function _burn(address account, uint96 amount) external { + require(account != address(0), "dCLM8::_burn: burn from the zero address"); + require(msg.sender == governor, "dCLM8::_burn: must be governor"); + + uint96 accountBalance = balances[account]; + require(accountBalance >= amount, "dCLM8::_burn: burn amount exceeds balance"); + balances[account] = accountBalance - amount; + totalSupply -= amount; + + emit Transfer(account, address(0), amount); + } + + function _delegate(address delegator, address delegatee) internal { + address currentDelegate = delegates[delegator]; + uint96 delegatorBalance = balances[delegator]; + delegates[delegator] = delegatee; + + emit DelegateChanged(delegator, currentDelegate, delegatee); + + _moveDelegates(currentDelegate, delegatee, delegatorBalance); + } + + function _transferTokens(address src, address dst, uint96 amount) internal { + require(src != address(0), "dCLM8::_transferTokens: cannot transfer from the zero address"); + require(dst != address(0), "dCLM8::_transferTokens: cannot transfer to the zero address"); + + balances[src] = sub96(balances[src], amount, "dCLM8::_transferTokens: transfer amount exceeds balance"); + balances[dst] = add96(balances[dst], amount, "dCLM8::_transferTokens: transfer amount overflows"); + emit Transfer(src, dst, amount); + + // If dst address has no delgatees, automatically set to self. Otherwise, transfer to dst's delegates + if (delegates[dst] == address(0)) { + _delegate(dst, dst); + } else { + _moveDelegates(delegates[src], delegates[dst], amount); + } + } + + function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal { + if (srcRep != dstRep && amount > 0) { + if (srcRep != address(0)) { + uint32 srcRepNum = numCheckpoints[srcRep]; + uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; + uint96 srcRepNew = sub96(srcRepOld, amount, "dCLM8::_moveVotes: vote amount underflows"); + _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); + } + + if (dstRep != address(0)) { + uint32 dstRepNum = numCheckpoints[dstRep]; + uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; + uint96 dstRepNew = add96(dstRepOld, amount, "dCLM8::_moveVotes: vote amount overflows"); + _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); + } + } + } + + function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal { + uint32 blockNumber = safe32(block.number, "dCLM8::_writeCheckpoint: block number exceeds 32 bits"); + + if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { + checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; + } else { + checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); + numCheckpoints[delegatee] = nCheckpoints + 1; + } + + emit DelegateVotesChanged(delegatee, oldVotes, newVotes); + } + + function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { + require(n < 2**32, errorMessage); + return uint32(n); + } + + function safe96(uint n, string memory errorMessage) internal pure returns (uint96) { + require(n < 2**96, errorMessage); + return uint96(n); + } + + function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { + uint96 c = a + b; + require(c >= a, errorMessage); + return c; + } + + function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { + require(b <= a, errorMessage); + return a - b; + } + + function getChainId() internal pure returns (uint) { + uint256 chainId; + assembly { chainId := chainid() } + return chainId; + } + + function getTotalSupply() external view returns (uint) { + return totalSupply; + } + + function getInitialHolder() external view returns (address) { + return initialHolder; + } + + function setGovernor(address newGovernor) public { + require(msg.sender == initialHolder, "dCLM8::setGovernor: must be initial holder"); + require(governor == address(0), "dCLM::setGovernor: governor can only be set once"); + governor = newGovernor; + } + +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Governor.sol b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Governor.sol new file mode 100644 index 00000000000..1884c47e224 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Governor.sol @@ -0,0 +1,404 @@ +pragma solidity ^0.7.0; +pragma experimental ABIEncoderV2; +// SPDX-License-Identifier: BSD-3-Clause + +/* Copyright 2021 Compound Labs, Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/GovernorAlpha.sol +// Modified to work in the NetEmissionsTokenNetwork system + +contract Governor { + /// @notice The name of this contract + string public constant name = "Climate DAO Governor"; + + /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed + function quorumVotes() public view returns (uint) { + uint initialHolderBalance = dclm8.balanceOf(dclm8.getInitialHolder()); + uint daoTokensInCirculation = dclm8.getTotalSupply() - initialHolderBalance; + // if tokens in circulation, let sqrt(4%) of those tokens be the quorum + if (daoTokensInCirculation != 0) { + return sqrt(div256(daoTokensInCirculation, 25)); + } + // otherwise, default to sqrt(4% of total supply) + return 632455532033; + } + + /// @notice The number of votes required in order for a voter to become a proposer + function proposalThreshold() public pure returns (uint) { return 100000e18; } // 100,000 = 1% of Dclm8 + + /// @notice The maximum number of actions that can be included in a proposal + function proposalMaxOperations() public pure returns (uint) { return 10; } // 10 actions + + /// @notice The delay before voting on a proposal may take place, once proposed + function votingDelay() public pure returns (uint) { return 1; } // 1 block + + /// @notice The duration of voting on a proposal, in blocks + function votingPeriod() public pure returns (uint) { return 17280; } // ~3 days in blocks (assuming 15s blocks) + + /// @notice The address of the timelock + TimelockInterface public timelock; + + /// @notice The address of the DAO token + Dclm8Interface public dclm8; + + /// @notice The address of the Governor Guardian + address public guardian; + + /// @notice The total number of proposals + uint public proposalCount; + + struct Proposal { + // @notice Unique id for looking up a proposal + uint id; + + // @notice Creator of the proposal + address proposer; + + // @notice The timestamp that the proposal will be available for execution, set once the vote succeeds + uint eta; + + // @notice the ordered list of target addresses for calls to be made + address[] targets; + + // @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made + uint[] values; + + // @notice The ordered list of function signatures to be called + string[] signatures; + + // @notice The ordered list of calldata to be passed to each call + bytes[] calldatas; + + // @notice The block at which voting begins: holders must delegate their votes prior to this block + uint startBlock; + + // @notice The block at which voting ends: votes must be cast prior to this block + uint endBlock; + + // @notice Current number of votes in favor of this proposal + uint forVotes; + + // @notice Current number of votes in opposition to this proposal + uint againstVotes; + + // @notice Flag marking whether the proposal has been canceled + bool canceled; + + // @notice Flag marking whether the proposal has been executed + bool executed; + + // @notes Description of the proposal + string description; + + // @notice Receipts of ballots for the entire set of voters + mapping (address => Receipt) receipts; + } + + /// @notice Ballot receipt record for a voter + struct Receipt { + // @notice Whether or not a vote has been cast + bool hasVoted; + + // @notice Whether or not the voter supports the proposal + bool support; + + // @notice The number of votes the voter had, which were cast + uint96 votes; + } + + /// @notice Possible states that a proposal may be in + enum ProposalState { + Pending, + Active, + Canceled, + Defeated, + Succeeded, + Queued, + Expired, + Executed + } + + /// @notice The official record of all proposals ever proposed + mapping (uint => Proposal) public proposals; + + /// @notice The latest proposal for each proposer + mapping (address => uint) public latestProposalIds; + + /// @notice The EIP-712 typehash for the contract's domain + bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); + + /// @notice The EIP-712 typehash for the ballot struct used by the contract + bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,bool support)"); + + /// @notice An event emitted when a new proposal is created + event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, uint startBlock, uint endBlock, string description); + + /// @notice An event emitted when a vote has been cast on a proposal + event VoteCast(address voter, uint proposalId, bool support, uint votes); + + /// @notice An event emitted when a proposal has been canceled + event ProposalCanceled(uint id); + + /// @notice An event emitted when a proposal has been queued in the Timelock + event ProposalQueued(uint id, uint eta); + + /// @notice An event emitted when a proposal has been executed in the Timelock + event ProposalExecuted(uint id); + + constructor(address timelock_, address dclm8_, address guardian_) public { + timelock = TimelockInterface(timelock_); + dclm8 = Dclm8Interface(dclm8_); + guardian = guardian_; + } + + function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) public returns (uint) { + require(dclm8.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(), "Governor::propose: proposer votes below proposal threshold"); + require(targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, "Governor::propose: proposal function information arity mismatch"); + require(targets.length != 0, "Governor::propose: must provide actions"); + require(targets.length <= proposalMaxOperations(), "Governor::propose: too many actions"); + + uint latestProposalId = latestProposalIds[msg.sender]; + if (latestProposalId != 0) { + ProposalState proposersLatestProposalState = state(latestProposalId); + require(proposersLatestProposalState != ProposalState.Active, "Governor::propose: one live proposal per proposer, found an already active proposal"); + require(proposersLatestProposalState != ProposalState.Pending, "Governor::propose: one live proposal per proposer, found an already pending proposal"); + } + + uint startBlock = add256(block.number, votingDelay()); + uint endBlock = add256(startBlock, votingPeriod()); + + proposalCount++; + + Proposal storage p = proposals[proposalCount]; + p.id = proposalCount; + p.proposer = msg.sender; + p.eta = 0; + p.targets = targets; + p.values = values; + p.signatures = signatures; + p.calldatas = calldatas; + p.startBlock = startBlock; + p.endBlock = endBlock; + p.forVotes = 0; + p.againstVotes = 0; + p.canceled = false; + p.executed = false; + p.description = description; + + latestProposalIds[p.proposer] = p.id; + + emit ProposalCreated(p.id, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description); + return p.id; + } + + function queue(uint proposalId) public { + require(state(proposalId) == ProposalState.Succeeded, "Governor::queue: proposal can only be queued if it is succeeded"); + Proposal storage proposal = proposals[proposalId]; + uint eta = add256(block.timestamp, timelock.delay()); + for (uint i = 0; i < proposal.targets.length; i++) { + _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta); + } + proposal.eta = eta; + emit ProposalQueued(proposalId, eta); + } + + function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal { + require(!timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))), "Governor::_queueOrRevert: proposal action already queued at eta"); + timelock.queueTransaction(target, value, signature, data, eta); + } + + function execute(uint proposalId) public payable { + require(state(proposalId) == ProposalState.Queued, "Governor::execute: proposal can only be executed if it is queued"); + Proposal storage proposal = proposals[proposalId]; + proposal.executed = true; + for (uint i = 0; i < proposal.targets.length; i++) { + timelock.executeTransaction{value: proposal.values[i]}(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta); + } + emit ProposalExecuted(proposalId); + } + + function cancel(uint proposalId) public { + ProposalState currentState = state(proposalId); + require(currentState != ProposalState.Executed, "Governor::cancel: cannot cancel executed proposal"); + + Proposal storage proposal = proposals[proposalId]; + require(msg.sender == guardian || dclm8.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(), "Governor::cancel: proposer above threshold"); + + proposal.canceled = true; + for (uint i = 0; i < proposal.targets.length; i++) { + timelock.cancelTransaction(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta); + } + + emit ProposalCanceled(proposalId); + } + + function getActions(uint proposalId) public view returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas) { + Proposal storage p = proposals[proposalId]; + return (p.targets, p.values, p.signatures, p.calldatas); + } + + function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) { + return proposals[proposalId].receipts[voter]; + } + + function getDescription(uint proposalId) public view returns (string memory) { + return proposals[proposalId].description; + } + + function state(uint proposalId) public view returns (ProposalState) { + require(proposalCount >= proposalId && proposalId > 0, "Governor::state: invalid proposal id"); + Proposal storage proposal = proposals[proposalId]; + if (proposal.canceled) { + return ProposalState.Canceled; + } else if (block.number <= proposal.startBlock) { + return ProposalState.Pending; + } else if (block.number <= proposal.endBlock) { + return ProposalState.Active; + } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) { + return ProposalState.Defeated; + } else if (proposal.eta == 0) { + return ProposalState.Succeeded; + } else if (proposal.executed) { + return ProposalState.Executed; + } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) { + return ProposalState.Expired; + } else { + return ProposalState.Queued; + } + } + + function castVote(uint proposalId, bool support, uint96 votes) public { + return _castVote(msg.sender, proposalId, support, votes); + } + + function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s, uint96 votes) public { + bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); + bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support)); + bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); + address signatory = ecrecover(digest, v, r, s); + require(signatory != address(0), "Governor::castVoteBySig: invalid signature"); + return _castVote(signatory, proposalId, support, votes); + } + + function _castVote(address voter, uint proposalId, bool support, uint96 votes) internal { + require(state(proposalId) == ProposalState.Active, "Governor::_castVote: voting is closed"); + Proposal storage proposal = proposals[proposalId]; + Receipt storage receipt = proposal.receipts[voter]; + require(receipt.hasVoted == false, "Governor::_castVote: voter already voted"); + require(votes > 0, "Governor::_castVote: no eligible votes prior to proposal start block"); + uint96 eligibleVotes = dclm8.getPriorVotes(voter, proposal.startBlock) - receipt.votes; + require(votes <= eligibleVotes, "Governor::_castVote: votes exceeds eligible amount"); + + uint96 quadraticVote = uint96(sqrt(votes)); + + if (support) { + proposal.forVotes = add256(proposal.forVotes, quadraticVote); + } else { + proposal.againstVotes = add256(proposal.againstVotes, quadraticVote); + } + + // burn used dCLM8 tokens + dclm8._burn(voter, votes); + + receipt.hasVoted = true; + receipt.support = support; + receipt.votes = quadraticVote; + + emit VoteCast(voter, proposalId, support, quadraticVote); + } + + function __acceptAdmin() public { + require(msg.sender == guardian, "Governor::__acceptAdmin: sender must be gov guardian"); + timelock.acceptAdmin(); + } + + function __abdicate() public { + require(msg.sender == guardian, "Governor::__abdicate: sender must be gov guardian"); + guardian = address(0); + } + + function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public { + require(msg.sender == guardian, "Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian"); + timelock.queueTransaction(address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta); + } + + function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public { + require(msg.sender == guardian, "Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian"); + timelock.executeTransaction(address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta); + } + + function add256(uint256 a, uint256 b) internal pure returns (uint) { + uint c = a + b; + require(c >= a, "addition overflow"); + return c; + } + + function sub256(uint256 a, uint256 b) internal pure returns (uint) { + require(b <= a, "subtraction underflow"); + return a - b; + } + + function div256(uint256 a, uint256 b) internal pure returns (uint256) { + return _div(a, b, "division by zero"); + } + + function _div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + uint256 c = a / b; + return c; + } + + function sqrt(uint x) internal pure returns (uint y) { + uint z = (x + 1) / 2; + y = x; + while (z < y) { + y = z; + z = (x / z + z) / 2; + } + } + + function getChainId() internal pure returns (uint) { + uint chainId; + assembly { chainId := chainid() } + return chainId; + } +} + +interface TimelockInterface { + function delay() external view returns (uint); + function GRACE_PERIOD() external view returns (uint); + function acceptAdmin() external; + function queuedTransactions(bytes32 hash) external view returns (bool); + function queueTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external returns (bytes32); + function cancelTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external; + function executeTransaction(address target, uint value, string calldata signature, bytes calldata data, uint eta) external payable returns (bytes memory); +} + +interface Dclm8Interface { + function getPriorVotes(address account, uint blockNumber) external view returns (uint96); + function getTotalSupply() external pure returns (uint); + function balanceOf(address account) external view returns (uint); + function getInitialHolder() external pure returns (address); + function _burn(address account, uint96 amount) external; +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol new file mode 100644 index 00000000000..d982f898853 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/Governance/Timelock.sol @@ -0,0 +1,139 @@ +pragma solidity ^0.7.0; +// SPDX-License-Identifier: BSD-3-Clause + +/* Copyright 2021 Compound Labs, Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +// Original work from Compound: https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol +// Modified to work in the NetEmissionsTokenNetwork system + +import "@openzeppelin/contracts/math/SafeMath.sol"; + +contract Timelock { + using SafeMath for uint; + + event NewAdmin(address indexed newAdmin); + event NewPendingAdmin(address indexed newPendingAdmin); + event NewDelay(uint indexed newDelay); + event CancelTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); + event ExecuteTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); + event QueueTransaction(bytes32 indexed txHash, address indexed target, uint value, string signature, bytes data, uint eta); + + uint public constant GRACE_PERIOD = 14 days; + uint public constant MINIMUM_DELAY = 2 days; + uint public constant MAXIMUM_DELAY = 30 days; + + address public admin; + address public pendingAdmin; + uint public delay; + + mapping (bytes32 => bool) public queuedTransactions; + + + constructor(address admin_, uint delay_) { + require(delay_ >= MINIMUM_DELAY, "Timelock::constructor: Delay must exceed minimum delay."); + require(delay_ <= MAXIMUM_DELAY, "Timelock::setDelay: Delay must not exceed maximum delay."); + + admin = admin_; + delay = delay_; + } + + fallback() external payable { } + + receive() external payable { } + + function setDelay(uint delay_) public { + require(msg.sender == address(this), "Timelock::setDelay: Call must come from Timelock."); + require(delay_ >= MINIMUM_DELAY, "Timelock::setDelay: Delay must exceed minimum delay."); + require(delay_ <= MAXIMUM_DELAY, "Timelock::setDelay: Delay must not exceed maximum delay."); + delay = delay_; + + emit NewDelay(delay); + } + + function acceptAdmin() public { + require(msg.sender == pendingAdmin, "Timelock::acceptAdmin: Call must come from pendingAdmin."); + admin = msg.sender; + pendingAdmin = address(0); + + emit NewAdmin(admin); + } + + function setPendingAdmin(address pendingAdmin_) public { + require(msg.sender == address(this), "Timelock::setPendingAdmin: Call must come from Timelock."); + pendingAdmin = pendingAdmin_; + + emit NewPendingAdmin(pendingAdmin); + } + + function queueTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public returns (bytes32) { + require(msg.sender == admin, "Timelock::queueTransaction: Call must come from admin."); + require(eta >= getBlockTimestamp().add(delay), "Timelock::queueTransaction: Estimated execution block must satisfy delay."); + + bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta)); + queuedTransactions[txHash] = true; + + emit QueueTransaction(txHash, target, value, signature, data, eta); + return txHash; + } + + function cancelTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public { + require(msg.sender == admin, "Timelock::cancelTransaction: Call must come from admin."); + + bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta)); + queuedTransactions[txHash] = false; + + emit CancelTransaction(txHash, target, value, signature, data, eta); + } + + function executeTransaction(address target, uint value, string memory signature, bytes memory data, uint eta) public payable returns (bytes memory) { + require(msg.sender == admin, "Timelock::executeTransaction: Call must come from admin."); + + bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta)); + require(queuedTransactions[txHash], "Timelock::executeTransaction: Transaction hasn't been queued."); + require(getBlockTimestamp() >= eta, "Timelock::executeTransaction: Transaction hasn't surpassed time lock."); + require(getBlockTimestamp() <= eta.add(GRACE_PERIOD), "Timelock::executeTransaction: Transaction is stale."); + + queuedTransactions[txHash] = false; + + bytes memory callData; + + if (bytes(signature).length == 0) { + callData = data; + } else { + callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data); + } + + (bool success, bytes memory returnData) = target.call{value:value}(callData); + require(success, "Timelock::executeTransaction: Transaction execution reverted."); + + emit ExecuteTransaction(txHash, target, value, signature, data, eta); + + return returnData; + } + + function getBlockTimestamp() internal view returns (uint) { + // solium-disable-next-line security/no-block-members + return block.timestamp; + } +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol new file mode 100644 index 00000000000..9db795b637b --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetwork.sol @@ -0,0 +1,643 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.7.0; +pragma experimental ABIEncoderV2; + +import "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol"; + +contract NetEmissionsTokenNetwork is Initializable, ERC1155Upgradeable, AccessControlUpgradeable { + + using SafeMathUpgradeable for uint256; + using CountersUpgradeable for CountersUpgradeable.Counter; + + bool public limitedMode; // disables some features like arbitrary token transfers and issuing without proposals + address public admin; // address that has permission to register dealers, transfer in limitedMode, etc. + address private timelock; // DAO contract that executes proposals to issue tokens after a successful vote + + // Generic dealer role for registering/unregistering consumers + bytes32 public constant REGISTERED_DEALER = + keccak256("REGISTERED_DEALER"); + // Token type specific roles + bytes32 public constant REGISTERED_REC_DEALER = + keccak256("REGISTERED_REC_DEALER"); + bytes32 public constant REGISTERED_OFFSET_DEALER = + keccak256("REGISTERED_OFFSET_DEALER"); + bytes32 public constant REGISTERED_EMISSIONS_AUDITOR = + keccak256("REGISTERED_EMISSIONS_AUDITOR"); + // Consumer role + bytes32 public constant REGISTERED_CONSUMER = + keccak256("REGISTERED_CONSUMER"); + + /** + * @dev Structure of all tokens issued in this contract + * tokenId - Auto-increments whenever new tokens are issued + * tokenTypeId - Corresponds to the three token types: + * 1 => Renewable Energy Certificate + * 2 => Carbon Emissions Offset + * 3 => Audited Emissions + * issuer - Address of dealer issuing this token + * issuee - Address of original issued recipient this token + * fromDate - Unix timestamp + * thruDate - Unix timestamp + * dateCreated - Unix timestamp + * automaticRetireDate - Unix timestamp + */ + struct CarbonTokenDetails { + uint256 tokenId; + uint8 tokenTypeId; + address issuer; + address issuee; + uint256 fromDate; + uint256 thruDate; + uint256 dateCreated; + uint256 automaticRetireDate; + string metadata; + string manifest; + string description; + } + + // Counts number of unique token IDs (auto-incrementing) + CountersUpgradeable.Counter private _numOfUniqueTokens; + + // Token metadata and retired balances + mapping(uint256 => CarbonTokenDetails) private _tokenDetails; + mapping(uint256 => mapping(address => uint256)) private _retiredBalances; + + // Events + event TokenCreated( + uint256 availableBalance, + uint256 retiredBalance, + uint256 tokenId, + uint8 tokenTypeId, + address indexed issuer, + address indexed issuee, + uint256 fromDate, + uint256 thruDate, + uint256 dateCreated, + uint256 automaticRetireDate, + string metadata, + string manifest, + string description + ); + event TokenRetired( + address indexed account, + uint256 tokenId, + uint256 amount + ); + event RegisteredConsumer(address indexed account); + event UnregisteredConsumer(address indexed account); + event RegisteredDealer(address indexed account); + event UnregisteredDealer(address indexed account); + + // Replaces constructor in OpenZeppelin Upgrades + function initialize(address _admin) public initializer { + + __ERC1155_init(""); + + // Allow dealers to register consumers + _setRoleAdmin(REGISTERED_CONSUMER, REGISTERED_DEALER); + + // Set-up admin + _setupRole(DEFAULT_ADMIN_ROLE, _admin); + _setupRole(REGISTERED_DEALER, _admin); + _setupRole(REGISTERED_REC_DEALER, _admin); + _setupRole(REGISTERED_OFFSET_DEALER, _admin); + _setupRole(REGISTERED_EMISSIONS_AUDITOR, _admin); + admin = _admin; + + // initialize + timelock = address(0); + + limitedMode = false; + } + + modifier consumerOrDealer() { + bool isConsumer = hasRole(REGISTERED_CONSUMER, msg.sender); + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender); + + require( + isConsumer || isRecDealer || isCeoDealer || isAeDealer, + "CLM8::consumerOrDealer: msg.sender not a consumer or a dealer" + ); + + _; + } + + modifier onlyDealer() { + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender); + + require( + isRecDealer || isCeoDealer || isAeDealer, + "CLM8::onlyDealer: msg.sender not a dealer" + ); + _; + } + + modifier onlyAdmin() { + require( + hasRole(DEFAULT_ADMIN_ROLE, msg.sender), + "CLM8::onlyAdmin: msg.sender not the admin" + ); + _; + } + + /** + * @dev returns true if the tokenId exists + */ + function tokenExists(uint256 tokenId) private view returns (bool) { + if (_numOfUniqueTokens.current() >= tokenId) return true; + return false; // no matching tokenId + } + + /** + * @dev returns true if the tokenTypeId is valid + */ + function tokenTypeIdIsValid(uint8 tokenTypeId) pure private returns (bool) { + if ((tokenTypeId > 0) && (tokenTypeId <= 3)) { + return true; + } + return false; // no matching tokenId + } + + /** + * @dev returns number of unique tokens + */ + function getNumOfUniqueTokens() public view returns (uint256) { + return _numOfUniqueTokens.current(); + } + + /** + * @dev hook to prevent transfers from non-admin account if limitedMode is on + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) + internal + virtual + override + { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + + for (uint i = 0; i < ids.length; i++) { + + CarbonTokenDetails storage token = _tokenDetails[ids[i]]; + + // disable most transfers if limitedMode is on + if (limitedMode) { + + // allow retiring/burning one's tokens + if (to == address(0)) { + continue; + } + + // for tokenType 1 and 2, only the timelock and DAO can transfer/issue + // for tokenType 3, only emissions auditors can transfer/issue + // (and they are automatically retired right after) + if (token.tokenTypeId != 3) { + require( + operator == timelock || hasRole(DEFAULT_ADMIN_ROLE, operator), + "CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens" + ); + } else { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, operator), + "CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions" + ); + } + } + } + } + + /** + * @dev External function to mint an amount of a token + * Only authorized dealer of associated token type can call this function + * @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller + * should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4) + */ + function issue( + address issuee, + uint8 tokenTypeId, + uint256 quantity, + uint256 fromDate, + uint256 thruDate, + uint256 automaticRetireDate, + string memory metadata, + string memory manifest, + string memory description + ) public onlyDealer { + return _issue( + issuee, + msg.sender, + tokenTypeId, + quantity, + fromDate, + thruDate, + automaticRetireDate, + metadata, + manifest, + description + ); + } + + /** + * @dev Issue function for DAO (on limited mode) or admin to manually pass issuer + * Must be called from Timelock contract through a successful proposal + * or by admin if limited mode is set to false + */ + function issueOnBehalf( + address issuee, + address issuer, + uint8 tokenTypeId, + uint256 quantity, + uint256 fromDate, + uint256 thruDate, + uint256 automaticRetireDate, + string memory metadata, + string memory manifest, + string memory description + ) public { + + require( + (msg.sender == timelock) || hasRole(DEFAULT_ADMIN_ROLE, msg.sender), + "CLM8::issueOnBehalf: call must come from DAO or admin" + ); + + return _issue( + issuee, + issuer, + tokenTypeId, + quantity, + fromDate, + thruDate, + automaticRetireDate, + metadata, + manifest, + description + ); + } + + function _issue( + address _issuee, + address _issuer, + uint8 _tokenTypeId, + uint256 _quantity, + uint256 _fromDate, + uint256 _thruDate, + uint256 _automaticRetireDate, + string memory _metadata, + string memory _manifest, + string memory _description + ) internal { + + require( + tokenTypeIdIsValid(_tokenTypeId), + "CLM8::_issue: tokenTypeId is invalid" + ); + + if (limitedMode) { + if (_tokenTypeId == 1 || _tokenTypeId == 2 ) { + require( + msg.sender == timelock, + "CLM8::_issue(limited): msg.sender not timelock" + ); + require( + hasRole(DEFAULT_ADMIN_ROLE, _issuee), + "CLM8::_issue(limited): issuee not admin" + ); + require( + hasRole(REGISTERED_REC_DEALER, _issuer) || hasRole(REGISTERED_OFFSET_DEALER, _issuer), + "CLM8::_issue(limited): proposer not a registered dealer" + ); + } else if (_tokenTypeId == 3) { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer), + "CLM8::_issue(limited): issuer not a registered emissions auditor" + ); + } + } else { + if (_tokenTypeId == 1) { + require( + hasRole(REGISTERED_REC_DEALER, _issuer), + "CLM8::_issue: issuer not a registered REC dealer" + ); + } else if (_tokenTypeId == 2) { + require( + hasRole(REGISTERED_OFFSET_DEALER, _issuer), + "CLM8::_issue: issuer not a registered offset dealer" + ); + } else if (_tokenTypeId == 3) { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer), + "CLM8::_issue: issuer not a registered emissions auditor" + ); + } + } + + // increment token identifier + _numOfUniqueTokens.increment(); + + // create token details + CarbonTokenDetails storage tokenInfo = _tokenDetails[_numOfUniqueTokens.current()]; + + tokenInfo.tokenId = _numOfUniqueTokens.current(); + tokenInfo.tokenTypeId = _tokenTypeId; + tokenInfo.issuee = _issuee; + tokenInfo.issuer = _issuer; + tokenInfo.fromDate = _fromDate; + tokenInfo.thruDate = _thruDate; + tokenInfo.automaticRetireDate = _automaticRetireDate; + tokenInfo.dateCreated = block.timestamp; + tokenInfo.metadata = _metadata; + tokenInfo.manifest = _manifest; + tokenInfo.description = _description; + + super._mint(_issuee, _numOfUniqueTokens.current(), _quantity, ""); + + // retire audited emissions on mint + if (_tokenTypeId == 3) { + super._burn(tokenInfo.issuee, tokenInfo.tokenId, _quantity); + _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee] = _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee].add(_quantity); + } + + // emit event with all token details and balances + emit TokenCreated( + _quantity, + _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee], + tokenInfo.tokenId, + tokenInfo.tokenTypeId, + tokenInfo.issuer, + tokenInfo.issuee, + tokenInfo.fromDate, + tokenInfo.thruDate, + tokenInfo.automaticRetireDate, + tokenInfo.dateCreated, + tokenInfo.metadata, + tokenInfo.manifest, + tokenInfo.description + ); + } + + /** + * @dev mints more of an existing token + * @param to reciepient of token + * @param tokenId token to mint more of + * @param quantity amount to mint + */ + function mint(address to, uint256 tokenId, uint256 quantity) + external + onlyAdmin + { + require(tokenExists(tokenId), "CLM8::mint: tokenId does not exist"); + require(!limitedMode, "CLM8::mint: cannot mint new tokens in limited mode"); + super._mint(to, tokenId, quantity, ""); + } + + /** + * @dev returns the token name for the given token as a string value + * @param tokenId token to check + */ + function getTokenType(uint256 tokenId) + external + view + returns (string memory) + { + require(tokenExists(tokenId), "CLM8::getTokenType: tokenId does not exist"); + CarbonTokenDetails storage token = _tokenDetails[tokenId]; + + if (token.tokenTypeId == 1) { + return "Renewable Energy Certificate"; + } else if (token.tokenTypeId == 2) { + return "Carbon Emissions Offset"; + } + return "Audited Emissions"; + + } + + /** + * @dev returns the retired amount on a token + * @param tokenId token to check + */ + function getTokenRetiredAmount(address account, uint256 tokenId) + public + view + returns (uint256) + { + require(tokenExists(tokenId), "CLM8::getTokenRetiredAmount: tokenId does not exist"); + uint256 amount = _retiredBalances[tokenId][account]; + return amount; + } + + /** + * @dev sets the token to the retire state to disable transfers, mints and burns + * @param tokenId token to set in pause state + * Only contract owner can pause or resume tokens + */ + function retire( + uint256 tokenId, + uint256 amount + ) external consumerOrDealer { + require(tokenExists(tokenId), "CLM8::retire: tokenId does not exist"); + require( (amount <= super.balanceOf(msg.sender, tokenId)), "CLM8::retire: not enough available balance to retire" ); + + super._burn(msg.sender, tokenId, amount); + _retiredBalances[tokenId][msg.sender] = _retiredBalances[tokenId][msg.sender].add(amount); + emit TokenRetired( + msg.sender, + tokenId, + amount + ); + } + + /** + * @dev returns true if Dealer's account is registered + * @param account address of the dealer + */ + function isDealerRegistered(address account) public view returns (bool) { + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account); + if (isRecDealer || isCeoDealer || isAeDealer) return true; + return false; + } + + /** + * @dev returns true if Consumers's account is registered + * @param account address of the dealer + */ + function isConsumerRegistered(address account) public view returns (bool) { + return hasRole(REGISTERED_CONSUMER, account); + } + + /** + * @dev returns true if Consumers's or Dealer's account is registered + * @param account address of the consumer/dealer + */ + function isDealerOrConsumer(address account) private view returns (bool) { + return (isDealerRegistered(account) || isConsumerRegistered(account)); + } + + /** + * @dev Helper function for returning tuple of bools of role membership + * @param account address to check roles + */ + function getRoles(address account) external view returns (bool, bool, bool, bool, bool) { + bool isAdmin = hasRole(DEFAULT_ADMIN_ROLE, account); + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account); + bool isConsumer = hasRole(REGISTERED_CONSUMER, account); + return (isAdmin, isRecDealer, isCeoDealer, isAeDealer, isConsumer); + } + + /** + * @dev Only contract owner can register Dealers + * @param account address of the dealer to register + * Only registered Dealers can transfer tokens + */ + function registerDealer(address account, uint8 tokenTypeId) + external + onlyAdmin + { + require(tokenTypeIdIsValid(tokenTypeId), "CLM8::registerDealer: tokenTypeId does not exist"); + if (tokenTypeId == 1) { + grantRole(REGISTERED_REC_DEALER, account); + } else if (tokenTypeId == 2) { + grantRole(REGISTERED_OFFSET_DEALER, account); + } else { + grantRole(REGISTERED_EMISSIONS_AUDITOR, account); + } + // Also grant generic dealer role for registering/unregistering consumers + grantRole(REGISTERED_DEALER, account); + emit RegisteredDealer(account); + } + + /** + * @dev returns true if Consumer's account is registered for the given token + * @param account address of the consumer + */ + function registerConsumer(address account) external onlyDealer { + if (limitedMode) { + require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "CLM8::registerConsumer(limited): only admin can register consumers"); + } + grantRole(REGISTERED_CONSUMER, account); + emit RegisteredConsumer(account); + } + + /** + * @dev Only contract owner can unregister Dealers + * @param account address to be unregistered + */ + function unregisterDealer(address account, uint8 tokenTypeId) + external + onlyAdmin + { + require(tokenTypeIdIsValid(tokenTypeId), "CLM8::unregisterDealer: tokenTypeId does not exist"); + if (tokenTypeId == 1) { + super.revokeRole(REGISTERED_REC_DEALER, account); + } else if (tokenTypeId == 2) { + super.revokeRole(REGISTERED_OFFSET_DEALER, account); + } else { + super.revokeRole(REGISTERED_EMISSIONS_AUDITOR, account); + } + + // If no longer a dealer of any token type, remove generic dealer role + if (!isDealerRegistered(account)) { + revokeRole(REGISTERED_DEALER, account); + } + + emit UnregisteredDealer(account); + } + + /** + * @dev Only contract owner can unregister Consumers + * @param account address to be unregistered + */ + function unregisterConsumer(address account) external onlyDealer { + if (limitedMode) { + require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "CLM8::unregisterConsumer(limited): only admin can unregister consumers"); + } + super.revokeRole(REGISTERED_CONSUMER, account); + emit UnregisteredConsumer(account); + } + + /** + * @dev transfers the value to the 'to' account for tokenId + * @param to recipient address + * @param tokenId tokenId for the transfer + * @param value amount of transfer + * Transfer can start only when both parties are registered and the token is not paused + * Note: Token holders can arbitrarily call safeTransferFrom() without these checks + */ + function transfer( + address to, + uint256 tokenId, + uint256 value + ) external consumerOrDealer { + require(tokenExists(tokenId), "CLM8::transfer: tokenId does not exist"); + require((msg.sender != to), "CLM8::transfer: sender and receiver cannot be the same"); + super.safeTransferFrom(msg.sender, to, tokenId, value, "0x00"); + } + + function setTimelock( + address _timelock + ) external onlyAdmin { + timelock = _timelock; + } + + function getAvailableAndRetired(address account, uint256 tokenId) + external + view + returns (uint256, uint256) + { + uint256 available = super.balanceOf(account, tokenId); + uint256 retired = this.getTokenRetiredAmount(account, tokenId); + return (available, retired); + } + + /** + * @dev returns issuer of a given tokenId + */ + function getIssuer(uint256 tokenId) + external + view + returns (address) + { + return _tokenDetails[tokenId].issuer; + } + + /** + * @dev returns the details of a given tokenId, omitting holders + * @param tokenId token to check + */ + function getTokenDetails(uint256 tokenId) + external + view + returns (CarbonTokenDetails memory) + { + return _tokenDetails[tokenId]; + } + + /** + * @dev turns off or on limited mode + * @param _limitedMode boolean value + */ + function setLimitedMode(bool _limitedMode) + external + onlyAdmin + { + limitedMode = _limitedMode; + } + +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol new file mode 100644 index 00000000000..5428baf2076 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/solidity/net-emissions-token-network/NetEmissionsTokenNetworkV2.sol @@ -0,0 +1,648 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity ^0.7.0; +pragma experimental ABIEncoderV2; + +import "@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/proxy/Initializable.sol"; + +// V2 example file for testing upgrades +// This is NOT up to date or a real upgrade of NetEmissionsTokenNetwork.sol + +contract NetEmissionsTokenNetworkV2 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable { + + using SafeMathUpgradeable for uint256; + using CountersUpgradeable for CountersUpgradeable.Counter; + + bool public limitedMode; // disables some features like arbitrary token transfers and issuing without proposals + address public admin; // address that has permission to register dealers, transfer in limitedMode, etc. + address private timelock; // DAO contract that executes proposals to issue tokens after a successful vote + + // Generic dealer role for registering/unregistering consumers + bytes32 public constant REGISTERED_DEALER = + keccak256("REGISTERED_DEALER"); + // Token type specific roles + bytes32 public constant REGISTERED_REC_DEALER = + keccak256("REGISTERED_REC_DEALER"); + bytes32 public constant REGISTERED_OFFSET_DEALER = + keccak256("REGISTERED_OFFSET_DEALER"); + bytes32 public constant REGISTERED_EMISSIONS_AUDITOR = + keccak256("REGISTERED_EMISSIONS_AUDITOR"); + // Consumer role + bytes32 public constant REGISTERED_CONSUMER = + keccak256("REGISTERED_CONSUMER"); + + /** + * @dev Structure of all tokens issued in this contract + * tokenId - Auto-increments whenever new tokens are issued + * tokenTypeId - Corresponds to the three token types: + * 1 => Renewable Energy Certificate + * 2 => Carbon Emissions Offset + * 3 => Audited Emissions + * issuer - Address of dealer issuing this token + * issuee - Address of original issued recipient this token + * fromDate - Unix timestamp + * thruDate - Unix timestamp + * dateCreated - Unix timestamp + * automaticRetireDate - Unix timestamp + */ + struct CarbonTokenDetails { + uint256 tokenId; + uint8 tokenTypeId; + address issuer; + address issuee; + uint256 fromDate; + uint256 thruDate; + uint256 dateCreated; + uint256 automaticRetireDate; + string metadata; + string manifest; + string description; + } + + // Counts number of unique token IDs (auto-incrementing) + CountersUpgradeable.Counter private _numOfUniqueTokens; + + // Token metadata and retired balances + mapping(uint256 => CarbonTokenDetails) private _tokenDetails; + mapping(uint256 => mapping(address => uint256)) private _retiredBalances; + + address private newTestVariable; + + // Events + event TokenCreated( + uint256 availableBalance, + uint256 retiredBalance, + uint256 tokenId, + uint8 tokenTypeId, + address indexed issuer, + address indexed issuee, + uint256 fromDate, + uint256 thruDate, + uint256 dateCreated, + uint256 automaticRetireDate, + string metadata, + string manifest, + string description + ); + event TokenRetired( + address indexed account, + uint256 tokenId, + uint256 amount + ); + event RegisteredConsumer(address indexed account); + event UnregisteredConsumer(address indexed account); + event RegisteredDealer(address indexed account); + event UnregisteredDealer(address indexed account); + + // Replaces constructor in OpenZeppelin Upgrades + function initialize(address _admin) public initializer { + + __ERC1155_init(""); + + // Allow dealers to register consumers + _setRoleAdmin(REGISTERED_CONSUMER, REGISTERED_DEALER); + + // Set-up admin + _setupRole(DEFAULT_ADMIN_ROLE, _admin); + _setupRole(REGISTERED_DEALER, _admin); + _setupRole(REGISTERED_REC_DEALER, _admin); + _setupRole(REGISTERED_OFFSET_DEALER, _admin); + _setupRole(REGISTERED_EMISSIONS_AUDITOR, _admin); + admin = _admin; + + // initialize + timelock = address(0); + + limitedMode = false; + } + + modifier consumerOrDealer() { + bool isConsumer = hasRole(REGISTERED_CONSUMER, msg.sender); + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender); + + require( + isConsumer || isRecDealer || isCeoDealer || isAeDealer, + "CLM8::consumerOrDealer: msg.sender not a consumer or a dealer" + ); + + _; + } + + modifier onlyDealer() { + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, msg.sender); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, msg.sender); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, msg.sender); + + require( + isRecDealer || isCeoDealer || isAeDealer, + "CLM8::onlyDealer: msg.sender not a dealer" + ); + _; + } + + modifier onlyAdmin() { + require( + hasRole(DEFAULT_ADMIN_ROLE, msg.sender), + "CLM8::onlyAdmin: msg.sender not the admin" + ); + _; + } + + /** + * @dev returns true if the tokenId exists + */ + function tokenExists(uint256 tokenId) private view returns (bool) { + if (_numOfUniqueTokens.current() >= tokenId) return true; + return false; // no matching tokenId + } + + /** + * @dev returns true if the tokenTypeId is valid + */ + function tokenTypeIdIsValid(uint8 tokenTypeId) pure private returns (bool) { + if ((tokenTypeId > 0) && (tokenTypeId <= 3)) { + return true; + } + return false; // no matching tokenId + } + + /** + * @dev returns number of unique tokens + */ + function getNumOfUniqueTokens() public view returns (uint256) { + return _numOfUniqueTokens.current(); + } + + /** + * @dev hook to prevent transfers from non-admin account if limitedMode is on + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) + internal + virtual + override + { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + + for (uint i = 0; i < ids.length; i++) { + + CarbonTokenDetails storage token = _tokenDetails[ids[i]]; + + // disable most transfers if limitedMode is on + if (limitedMode) { + + // allow retiring/burning one's tokens + if (to == address(0)) { + continue; + } + + // for tokenType 1 and 2, only the timelock and DAO can transfer/issue + // for tokenType 3, only emissions auditors can transfer/issue + // (and they are automatically retired right after) + if (token.tokenTypeId != 3) { + require( + operator == timelock || hasRole(DEFAULT_ADMIN_ROLE, operator), + "CLM8::_beforeTokenTransfer(limited): only admin and DAO can transfer tokens" + ); + } else { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, operator), + "CLM8::_beforeTokenTransfer(limited): only emissions auditors can issue audited emissions" + ); + } + } + } + } + + /** + * @dev External function to mint an amount of a token + * Only authorized dealer of associated token type can call this function + * @param quantity of the token to mint For ex: if one needs 100 full tokens, the caller + * should set the amount as (100 * 10^4) = 1,000,000 (assuming the token's decimals is set to 4) + */ + function issue( + address issuee, + uint8 tokenTypeId, + uint256 quantity, + uint256 fromDate, + uint256 thruDate, + uint256 automaticRetireDate, + string memory metadata, + string memory manifest, + string memory description + ) public onlyDealer { + return _issue( + issuee, + msg.sender, + tokenTypeId, + quantity, + fromDate, + thruDate, + automaticRetireDate, + metadata, + manifest, + description + ); + } + + /** + * @dev Issue function for DAO (on limited mode) or admin to manually pass issuer + * Must be called from Timelock contract through a successful proposal + * or by admin if limited mode is set to false + */ + function issueOnBehalf( + address issuee, + address issuer, + uint8 tokenTypeId, + uint256 quantity, + uint256 fromDate, + uint256 thruDate, + uint256 automaticRetireDate, + string memory metadata, + string memory manifest, + string memory description + ) public { + + require( + (msg.sender == timelock) || hasRole(DEFAULT_ADMIN_ROLE, msg.sender), + "CLM8::issueOnBehalf: call must come from DAO or admin" + ); + + return _issue( + issuee, + issuer, + tokenTypeId, + quantity, + fromDate, + thruDate, + automaticRetireDate, + metadata, + manifest, + description + ); + } + + function _issue( + address _issuee, + address _issuer, + uint8 _tokenTypeId, + uint256 _quantity, + uint256 _fromDate, + uint256 _thruDate, + uint256 _automaticRetireDate, + string memory _metadata, + string memory _manifest, + string memory _description + ) internal { + + require( + tokenTypeIdIsValid(_tokenTypeId), + "CLM8::_issue: tokenTypeId is invalid" + ); + + if (limitedMode) { + if (_tokenTypeId == 1 || _tokenTypeId == 2 ) { + require( + msg.sender == timelock, + "CLM8::_issue(limited): msg.sender not timelock" + ); + require( + hasRole(DEFAULT_ADMIN_ROLE, _issuee), + "CLM8::_issue(limited): issuee not admin" + ); + require( + hasRole(REGISTERED_REC_DEALER, _issuer) || hasRole(REGISTERED_OFFSET_DEALER, _issuer), + "CLM8::_issue(limited): proposer not a registered dealer" + ); + } else if (_tokenTypeId == 3) { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer), + "CLM8::_issue(limited): issuer not a registered emissions auditor" + ); + } + } else { + if (_tokenTypeId == 1) { + require( + hasRole(REGISTERED_REC_DEALER, _issuer), + "CLM8::_issue: issuer not a registered REC dealer" + ); + } else if (_tokenTypeId == 2) { + require( + hasRole(REGISTERED_OFFSET_DEALER, _issuer), + "CLM8::_issue: issuer not a registered offset dealer" + ); + } else if (_tokenTypeId == 3) { + require( + hasRole(REGISTERED_EMISSIONS_AUDITOR, _issuer), + "CLM8::_issue: issuer not a registered emissions auditor" + ); + } + } + + // increment token identifier + _numOfUniqueTokens.increment(); + + // create token details + CarbonTokenDetails storage tokenInfo = _tokenDetails[_numOfUniqueTokens.current()]; + + tokenInfo.tokenId = _numOfUniqueTokens.current(); + tokenInfo.tokenTypeId = _tokenTypeId; + tokenInfo.issuee = _issuee; + tokenInfo.issuer = _issuer; + tokenInfo.fromDate = _fromDate; + tokenInfo.thruDate = _thruDate; + tokenInfo.automaticRetireDate = _automaticRetireDate; + tokenInfo.dateCreated = block.timestamp; + tokenInfo.metadata = _metadata; + tokenInfo.manifest = _manifest; + tokenInfo.description = _description; + + super._mint(_issuee, _numOfUniqueTokens.current(), _quantity, ""); + + // retire audited emissions on mint + if (_tokenTypeId == 3) { + super._burn(tokenInfo.issuee, tokenInfo.tokenId, _quantity); + _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee] = _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee].add(_quantity); + } + + // emit event with all token details and balances + emit TokenCreated( + _quantity, + _retiredBalances[tokenInfo.tokenId][tokenInfo.issuee], + tokenInfo.tokenId, + tokenInfo.tokenTypeId, + tokenInfo.issuer, + tokenInfo.issuee, + tokenInfo.fromDate, + tokenInfo.thruDate, + tokenInfo.automaticRetireDate, + tokenInfo.dateCreated, + tokenInfo.metadata, + tokenInfo.manifest, + tokenInfo.description + ); + } + + /** + * @dev mints more of an existing token + * @param to reciepient of token + * @param tokenId token to mint more of + * @param quantity amount to mint + */ + function mint(address to, uint256 tokenId, uint256 quantity) + external + onlyAdmin + { + require(tokenExists(tokenId), "CLM8::mint: tokenId does not exist"); + require(!limitedMode, "CLM8::mint: cannot mint new tokens in limited mode"); + super._mint(to, tokenId, quantity, ""); + } + + /** + * @dev returns the token name for the given token as a string value + * @param tokenId token to check + */ + function getTokenType(uint256 tokenId) + external + view + returns (string memory) + { + require(tokenExists(tokenId), "CLM8::getTokenType: tokenId does not exist"); + CarbonTokenDetails storage token = _tokenDetails[tokenId]; + + if (token.tokenTypeId == 1) { + return "Renewable Energy Certificate"; + } else if (token.tokenTypeId == 2) { + return "Carbon Emissions Offset"; + } + return "Audited Emissions"; + + } + + /** + * @dev returns the retired amount on a token + * @param tokenId token to check + */ + function getTokenRetiredAmount(address account, uint256 tokenId) + public + view + returns (uint256) + { + require(tokenExists(tokenId), "CLM8::getTokenRetiredAmount: tokenId does not exist"); + uint256 amount = _retiredBalances[tokenId][account]; + return amount; + } + + /** + * @dev sets the token to the retire state to disable transfers, mints and burns + * @param tokenId token to set in pause state + * Only contract owner can pause or resume tokens + */ + function retire( + uint256 tokenId, + uint256 amount + ) external consumerOrDealer { + require(tokenExists(tokenId), "CLM8::retire: tokenId does not exist"); + require( (amount <= super.balanceOf(msg.sender, tokenId)), "CLM8::retire: not enough available balance to retire" ); + + super._burn(msg.sender, tokenId, amount); + _retiredBalances[tokenId][msg.sender] = _retiredBalances[tokenId][msg.sender].add(amount); + emit TokenRetired( + msg.sender, + tokenId, + amount + ); + } + + /** + * @dev returns true if Dealer's account is registered + * @param account address of the dealer + */ + function isDealerRegistered(address account) public view returns (bool) { + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account); + if (isRecDealer || isCeoDealer || isAeDealer) return true; + return false; + } + + /** + * @dev returns true if Consumers's account is registered + * @param account address of the dealer + */ + function isConsumerRegistered(address account) public view returns (bool) { + return hasRole(REGISTERED_CONSUMER, account); + } + + /** + * @dev returns true if Consumers's or Dealer's account is registered + * @param account address of the consumer/dealer + */ + function isDealerOrConsumer(address account) private view returns (bool) { + return (isDealerRegistered(account) || isConsumerRegistered(account)); + } + + /** + * @dev Helper function for returning tuple of bools of role membership + * @param account address to check roles + */ + function getRoles(address account) external view returns (bool, bool, bool, bool, bool) { + bool isAdmin = hasRole(DEFAULT_ADMIN_ROLE, account); + bool isRecDealer = hasRole(REGISTERED_REC_DEALER, account); + bool isCeoDealer = hasRole(REGISTERED_OFFSET_DEALER, account); + bool isAeDealer = hasRole(REGISTERED_EMISSIONS_AUDITOR, account); + bool isConsumer = hasRole(REGISTERED_CONSUMER, account); + return (isAdmin, isRecDealer, isCeoDealer, isAeDealer, isConsumer); + } + + /** + * @dev Only contract owner can register Dealers + * @param account address of the dealer to register + * Only registered Dealers can transfer tokens + */ + function registerDealer(address account, uint8 tokenTypeId) + external + onlyAdmin + { + require(tokenTypeIdIsValid(tokenTypeId), "CLM8::registerDealer: tokenTypeId does not exist"); + if (tokenTypeId == 1) { + grantRole(REGISTERED_REC_DEALER, account); + } else if (tokenTypeId == 2) { + grantRole(REGISTERED_OFFSET_DEALER, account); + } else { + grantRole(REGISTERED_EMISSIONS_AUDITOR, account); + } + // Also grant generic dealer role for registering/unregistering consumers + grantRole(REGISTERED_DEALER, account); + emit RegisteredDealer(account); + } + + /** + * @dev returns true if Consumer's account is registered for the given token + * @param account address of the consumer + */ + function registerConsumer(address account) external onlyDealer { + if (limitedMode) { + require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "CLM8::registerConsumer(limited): only admin can register consumers"); + } + grantRole(REGISTERED_CONSUMER, account); + emit RegisteredConsumer(account); + } + + /** + * @dev Only contract owner can unregister Dealers + * @param account address to be unregistered + */ + function unregisterDealer(address account, uint8 tokenTypeId) + external + onlyAdmin + { + require(tokenTypeIdIsValid(tokenTypeId), "CLM8::unregisterDealer: tokenTypeId does not exist"); + if (tokenTypeId == 1) { + super.revokeRole(REGISTERED_REC_DEALER, account); + } else if (tokenTypeId == 2) { + super.revokeRole(REGISTERED_OFFSET_DEALER, account); + } else { + super.revokeRole(REGISTERED_EMISSIONS_AUDITOR, account); + } + + // If no longer a dealer of any token type, remove generic dealer role + if (!isDealerRegistered(account)) { + revokeRole(REGISTERED_DEALER, account); + } + + emit UnregisteredDealer(account); + } + + /** + * @dev Only contract owner can unregister Consumers + * @param account address to be unregistered + */ + function unregisterConsumer(address account) external onlyDealer { + if (limitedMode) { + require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "CLM8::unregisterConsumer(limited): only admin can unregister consumers"); + } + super.revokeRole(REGISTERED_CONSUMER, account); + emit UnregisteredConsumer(account); + } + + /** + * @dev transfers the value to the 'to' account for tokenId + * @param to recipient address + * @param tokenId tokenId for the transfer + * @param value amount of transfer + * Transfer can start only when both parties are registered and the token is not paused + * Note: Token holders can arbitrarily call safeTransferFrom() without these checks + */ + function transfer( + address to, + uint256 tokenId, + uint256 value + ) external consumerOrDealer { + require(tokenExists(tokenId), "CLM8::transfer: tokenId does not exist"); + require((msg.sender != to), "CLM8::transfer: sender and receiver cannot be the same"); + super.safeTransferFrom(msg.sender, to, tokenId, value, "0x00"); + } + + function setTimelock( + address _timelock + ) external onlyAdmin { + timelock = _timelock; + } + + function getAvailableAndRetired(address account, uint256 tokenId) + external + view + returns (uint256, uint256) + { + uint256 available = super.balanceOf(account, tokenId); + uint256 retired = this.getTokenRetiredAmount(account, tokenId); + return (available, retired); + } + + /** + * @dev returns issuer of a given tokenId + */ + function getIssuer(uint256 tokenId) + external + view + returns (address) + { + return _tokenDetails[tokenId].issuer; + } + + /** + * @dev returns the details of a given tokenId, omitting holders + * @param tokenId token to check + */ + function getTokenDetails(uint256 tokenId) + external + view + returns (CarbonTokenDetails memory) + { + return _tokenDetails[tokenId]; + } + + /** + * @dev turns off or on limited mode + * @param _limitedMode boolean value + */ + function setLimitedMode(bool _limitedMode) + external + onlyAdmin + { + limitedMode = _limitedMode; + } + +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app-cli.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app-cli.ts new file mode 100755 index 00000000000..f2f00b125f2 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app-cli.ts @@ -0,0 +1,31 @@ +#!/usr/bin/env node + +import { ConfigService } from "@hyperledger/cactus-cmd-api-server"; +import { LoggerProvider } from "@hyperledger/cactus-common"; +import { + ICarbonAccountingAppOptions, + CarbonAccountingApp, +} from "./carbon-accounting-app"; + +export async function launchApp(): Promise { + const configService = new ConfigService(); + const config = configService.getOrCreate(); + const serverOptions = config.getProperties(); + LoggerProvider.setLogLevel(serverOptions.logLevel); + + const appOptions: ICarbonAccountingAppOptions = { + logLevel: serverOptions.logLevel, + }; + const carbonAccountingApp = new CarbonAccountingApp(appOptions); + try { + await carbonAccountingApp.start(); + } catch (ex) { + console.error(`CarbonAccountingApp crashed. Existing...`, ex); + await carbonAccountingApp?.stop(); + process.exit(-1); + } +} + +if (require.main === module) { + launchApp(); +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app.ts new file mode 100644 index 00000000000..5fe58966a38 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/carbon-accounting-app.ts @@ -0,0 +1,395 @@ +import { AddressInfo } from "net"; +import { Server } from "http"; + +import { JWK } from "jose"; +import { v4 as uuidv4 } from "uuid"; +import exitHook, { IAsyncExitHookDoneCallback } from "async-exit-hook"; + +import { + CactusNode, + Consortium, + ConsortiumDatabase, + ConsortiumMember, + Ledger, + LedgerType, +} from "@hyperledger/cactus-core-api"; + +import { PluginRegistry } from "@hyperledger/cactus-core"; + +import { + LogLevelDesc, + Logger, + LoggerProvider, + Servers, +} from "@hyperledger/cactus-common"; + +import { ApiServer, ConfigService } from "@hyperledger/cactus-cmd-api-server"; + +import { PluginConsortiumManual } from "@hyperledger/cactus-plugin-consortium-manual"; +import { PluginKeychainMemory } from "@hyperledger/cactus-plugin-keychain-memory"; + +import { + Web3SigningCredentialType, + DefaultApi as QuorumApi, +} from "@hyperledger/cactus-plugin-ledger-connector-quorum"; + +import { + PluginLedgerConnectorBesu, + DefaultApi as BesuApi, +} from "@hyperledger/cactus-plugin-ledger-connector-besu"; + +import { + PluginLedgerConnectorFabric, + DefaultApi as FabricApi, + DefaultEventHandlerStrategy, +} from "@hyperledger/cactus-plugin-ledger-connector-fabric"; + +import { + CarbonAccountingAppDummyInfrastructure, + org1Env, +} from "./infrastructure/carbon-accounting-app-dummy-infrastructure"; +import { SupplyChainCactusPlugin } from "@hyperledger/cactus-example-supply-chain-business-logic-plugin"; +import { DiscoveryOptions } from "fabric-network"; + +export interface ICarbonAccountingAppOptions { + logLevel?: LogLevelDesc; +} + +export type ShutdownHook = () => Promise; +//TODO: Generate fabric connector and set in the pluginRegistry +export class CarbonAccountingApp { + private readonly log: Logger; + private readonly shutdownHooks: ShutdownHook[]; + private readonly ledgers: CarbonAccountingAppDummyInfrastructure; + + public constructor(public readonly options: ICarbonAccountingAppOptions) { + const fnTag = "CarbonAccountingApp#constructor()"; + + if (!options) { + throw new Error(`${fnTag} options parameter is falsy`); + } + const { logLevel } = options; + + this.ledgers = new CarbonAccountingAppDummyInfrastructure({ logLevel }); + this.shutdownHooks = []; + + const level = logLevel || "INFO"; + const label = "supply-chain-app"; + this.log = LoggerProvider.getOrCreate({ level, label }); + } + + public async start(): Promise { + this.log.debug(`Starting CarbonAccountingApp...`); + + exitHook((callback: IAsyncExitHookDoneCallback) => { + this.stop().then(callback); + }); + + await this.ledgers.start(); + this.onShutdown(() => this.ledgers.stop()); + + const contractsInfo = await this.ledgers.deployContracts(); + + const besuAccount = await this.ledgers.besu.createEthTestAccount(); + + const enrollAdminOut = await this.ledgers.fabric.enrollAdmin(); + const adminWallet = enrollAdminOut[1]; + const [userIdentity] = await this.ledgers.fabric.enrollUser(adminWallet); + const keychainEntryKey = "user2"; + const keychainEntryValue = JSON.stringify(userIdentity); + + const keychainIdA = "PluginKeychainMemory_A"; + const keychainIdC = "PluginKeychainMemory_C"; + + // Reserve the ports where the Cactus nodes will run API servers, GUI + const httpApiA = await Servers.startOnPort(4000, "0.0.0.0"); + const httpApiB = await Servers.startOnPort(4100, "0.0.0.0"); + const httpApiC = await Servers.startOnPort(4200, "0.0.0.0"); + const httpGuiA = await Servers.startOnPort(3000, "0.0.0.0"); + const httpGuiC = await Servers.startOnPort(3200, "0.0.0.0"); + + const addressInfoA = httpApiA.address() as AddressInfo; + const nodeApiHostA = `http://localhost:${addressInfoA.port}`; + + const addressInfoB = httpApiB.address() as AddressInfo; + const nodeApiHostB = `http://localhost:${addressInfoB.port}`; + + const addressInfoC = httpApiC.address() as AddressInfo; + const nodeApiHostC = `http://localhost:${addressInfoC.port}`; + + const besuApiClient = new BesuApi({ basePath: nodeApiHostA }); + const quorumApiClient = new QuorumApi({ basePath: nodeApiHostB }); + const fabricApiClient = new FabricApi({ basePath: nodeApiHostC }); + + const keyPairA = await JWK.generate("EC", "secp256k1"); + const keyPairPemA = keyPairA.toPEM(true); + + const keyPairB = await JWK.generate("EC", "secp256k1"); + + const keyPairC = await JWK.generate("EC", "secp256k1"); + const keyPairPemC = keyPairC.toPEM(true); + + const consortiumDatabase = this.createConsortium( + httpApiA, + httpApiB, + httpApiC, + keyPairA, + keyPairB, + keyPairC, + ); + const consortiumPrettyJson = JSON.stringify(consortiumDatabase, null, 4); + this.log.info(`Created Consortium definition: %o`, consortiumPrettyJson); + + this.log.info(`Configuring Cactus Node for Ledger A...`); + const rpcApiHostA = await this.ledgers.besu.getRpcApiHttpHost(); + + const connectionProfile = await this.ledgers.fabric.getConnectionProfileOrg1(); + const sshConfig = await this.ledgers.fabric.getSshConfig(); + + const registryA = new PluginRegistry({ + plugins: [ + new PluginConsortiumManual({ + instanceId: "PluginConsortiumManual_A", + consortiumDatabase, + keyPairPem: keyPairPemA, + logLevel: this.options.logLevel, + }), + new SupplyChainCactusPlugin({ + logLevel: this.options.logLevel, + contracts: contractsInfo, + instanceId: uuidv4(), + besuApiClient, + quorumApiClient, + fabricApiClient, + web3SigningCredential: { + keychainEntryKey: besuAccount.address, + keychainId: keychainIdA, + type: Web3SigningCredentialType.CACTUSKEYCHAINREF, + }, + }), + new PluginKeychainMemory({ + instanceId: uuidv4(), + keychainId: keychainIdA, + backend: new Map([[besuAccount.address, besuAccount.privateKey]]), + }), + ], + }); + + const connectorBesu = new PluginLedgerConnectorBesu({ + instanceId: "PluginLedgerConnectorBesu_A", + rpcApiHttpHost: rpcApiHostA, + pluginRegistry: registryA, + logLevel: this.options.logLevel, + }); + + registryA.add(connectorBesu); + + await this.startNode(httpApiA, httpGuiA, registryA); + + this.log.info(`Configuring Cactus Node for Ledger C...`); + + const registryC = new PluginRegistry({ + plugins: [ + new PluginConsortiumManual({ + instanceId: "PluginConsortiumManual_C", + consortiumDatabase, + keyPairPem: keyPairPemC, + logLevel: "INFO", + }), + new SupplyChainCactusPlugin({ + logLevel: "INFO", + contracts: contractsInfo, + instanceId: uuidv4(), + besuApiClient, + quorumApiClient, + fabricApiClient, + fabricEnviroment: org1Env, + }), + new PluginKeychainMemory({ + instanceId: uuidv4(), + keychainId: keychainIdC, + backend: new Map([[keychainEntryKey, keychainEntryValue]]), + }), + ], + }); + + const discoveryOptions: DiscoveryOptions = { + enabled: true, + asLocalhost: true, + }; + + const fabricConnector = new PluginLedgerConnectorFabric({ + instanceId: "PluginLedgerConnectorFabric_C", + dockerBinary: "/usr/local/bin/docker", + cliContainerEnv: org1Env, + connectionProfile: connectionProfile, + sshConfig: sshConfig, + logLevel: "INFO", + pluginRegistry: registryC, + discoveryOptions, + eventHandlerOptions: { + strategy: DefaultEventHandlerStrategy.NETWORKSCOPEALLFORTX, + }, + }); + + registryC.add(fabricConnector); + + await this.startNode(httpApiC, httpGuiC, registryC); + } + + public async stop(): Promise { + for (const hook of this.shutdownHooks) { + await hook(); // FIXME add timeout here so that shutdown does not hang + } + } + + public onShutdown(hook: ShutdownHook): void { + this.shutdownHooks.push(hook); + } + + public createConsortium( + serverA: Server, + serverB: Server, + serverC: Server, + keyPairA: JWK.ECKey, + keyPairB: JWK.ECKey, + keyPairC: JWK.ECKey, + ): ConsortiumDatabase { + const consortiumName = "Example Supply Chain Consortium"; + const consortiumId = uuidv4(); + + const memberIdA = uuidv4(); + const nodeIdA = uuidv4(); + const addressInfoA = serverA.address() as AddressInfo; + const nodeApiHostA = `http://localhost:${addressInfoA.port}`; + + const cactusNodeA: CactusNode = { + nodeApiHost: nodeApiHostA, + memberId: memberIdA, + publicKeyPem: keyPairA.toPEM(false), + consortiumId, + id: nodeIdA, + pluginInstanceIds: [], + ledgerIds: [], + }; + + const memberA: ConsortiumMember = { + id: memberIdA, + nodeIds: [cactusNodeA.id], + name: "Example Manufacturer Corp", + }; + + const ledger1 = { + id: "BesuDemoLedger", + ledgerType: LedgerType.BESU1X, + }; + cactusNodeA.ledgerIds.push(ledger1.id); + + const memberIdB = uuidv4(); + const nodeIdB = uuidv4(); + const addressInfoB = serverB.address() as AddressInfo; + const nodeApiHostB = `http://localhost:${addressInfoB.port}`; + + const cactusNodeB: CactusNode = { + nodeApiHost: nodeApiHostB, + memberId: memberIdB, + publicKeyPem: keyPairB.toPEM(false), + consortiumId, + id: nodeIdB, + pluginInstanceIds: [], + ledgerIds: [], + }; + + const memberB: ConsortiumMember = { + id: memberIdB, + nodeIds: [cactusNodeB.id], + name: "Example Retailer Corp", + }; + + const ledger2: Ledger = { + id: "QuorumDemoLedger", + ledgerType: LedgerType.QUORUM2X, + }; + + cactusNodeB.ledgerIds.push(ledger2.id); + + const memberIdC = uuidv4(); + const nodeIdC = uuidv4(); + const addressInfoC = serverC.address() as AddressInfo; + const nodeApiHostC = `http://localhost:${addressInfoC.port}`; + + const cactusNodeC: CactusNode = { + nodeApiHost: nodeApiHostC, + memberId: memberIdC, + publicKeyPem: keyPairC.toPEM(false), + consortiumId, + id: nodeIdC, + pluginInstanceIds: [], + ledgerIds: [], + }; + + const memberC: ConsortiumMember = { + id: memberIdC, + nodeIds: [cactusNodeC.id], + name: "TODO", + }; + + const ledger3: Ledger = { + id: "FabricDemoLedger", + ledgerType: LedgerType.FABRIC14X, + }; + + cactusNodeC.ledgerIds.push(ledger3.id); + + const consortium: Consortium = { + id: consortiumId, + name: consortiumName, + mainApiHost: nodeApiHostA, + memberIds: [memberA.id, memberB.id, memberC.id], + }; + + const consortiumDatabase: ConsortiumDatabase = { + cactusNode: [cactusNodeA, cactusNodeB, cactusNodeC], + consortium: [consortium], + consortiumMember: [memberA, memberB, memberC], + ledger: [ledger1, ledger2, ledger3], + pluginInstance: [], + }; + + return consortiumDatabase; + } + + public async startNode( + httpServerApi: Server, + httpServerCockpit: Server, + pluginRegistry: PluginRegistry, + ): Promise { + const addressInfoApi = httpServerApi.address() as AddressInfo; + const addressInfoCockpit = httpServerCockpit.address() as AddressInfo; + + const configService = new ConfigService(); + const config = configService.getOrCreate(); + const properties = config.getProperties(); + + properties.plugins = []; + properties.configFile = ""; + properties.apiPort = addressInfoApi.port; + properties.apiHost = addressInfoApi.address; + properties.cockpitHost = addressInfoCockpit.address; + properties.cockpitPort = addressInfoCockpit.port; + properties.logLevel = this.options.logLevel || "INFO"; + + const apiServer = new ApiServer({ + config: properties, + httpServerApi, + httpServerCockpit, + pluginRegistry, + }); + + this.onShutdown(() => apiServer.shutdown()); + + await apiServer.start(); + + return apiServer; + } +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/index.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/index.ts new file mode 100755 index 00000000000..87cb558397c --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/index.ts @@ -0,0 +1 @@ +export * from "./public-api"; diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/index.web.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/index.web.ts new file mode 100755 index 00000000000..cb0ff5c3b54 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/index.web.ts @@ -0,0 +1 @@ +export {}; diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/infrastructure/carbon-accounting-app-dummy-infrastructure.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/infrastructure/carbon-accounting-app-dummy-infrastructure.ts new file mode 100644 index 00000000000..1c6510a15fc --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/infrastructure/carbon-accounting-app-dummy-infrastructure.ts @@ -0,0 +1,155 @@ +import { Optional } from "typescript-optional"; +import { Account } from "web3-core"; +import { + Logger, + Checks, + LogLevelDesc, + LoggerProvider, +} from "@hyperledger/cactus-common"; +import { PluginRegistry } from "@hyperledger/cactus-core"; +import { + PluginLedgerConnectorBesu, + Web3SigningCredentialType, +} from "@hyperledger/cactus-plugin-ledger-connector-besu"; +import { + BesuTestLedger, + FabricTestLedgerV1, +} from "@hyperledger/cactus-test-tooling"; + +import { ISupplyChainContractDeploymentInfo } from "@hyperledger/cactus-example-supply-chain-business-logic-plugin"; + +import DaoTokenContract from "../../json/generated/src/main/solidity/net-emissions-token-network/Governance/DAOToken.sol/DAOToken.json"; + +export const org1Env = { + CORE_PEER_LOCALMSPID: "Org1MSP", + CORE_PEER_ADDRESS: "peer0.org1.example.com:7051", + CORE_PEER_MSPCONFIGPATH: + "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp", + CORE_PEER_TLS_ROOTCERT_FILE: + "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt", + ORDERER_TLS_ROOTCERT_FILE: + "/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem", +}; + +export interface ICarbonAccountingAppDummyInfrastructureOptions { + logLevel?: LogLevelDesc; +} + +/** + * Contains code that is meant to simulate parts of a production grade deployment + * that would otherwise not be part of the application itself. + * + * The reason for this being in existence is so that we can have tutorials that + * are self-contained instead of starting with a multi-hour setup process where + * the user is expected to set up ledgers from scratch with all the bells and + * whistles. + * The sole purpose of this is to have people ramp up with Cactus as fast as + * possible. + */ +export class CarbonAccountingAppDummyInfrastructure { + public static readonly CLASS_NAME = "CarbonAccountingAppDummyInfrastructure"; + + public readonly besu: BesuTestLedger; + public readonly fabric: FabricTestLedgerV1; + private readonly log: Logger; + private _besuAccount: Account | undefined; + + public get besuAccount(): Optional { + return Optional.ofNullable(this._besuAccount); + } + + public get className(): string { + return CarbonAccountingAppDummyInfrastructure.CLASS_NAME; + } + + constructor( + public readonly options: ICarbonAccountingAppDummyInfrastructureOptions, + ) { + const fnTag = `${this.className}#constructor()`; + Checks.truthy(options, `${fnTag} arg options`); + + const level = this.options.logLevel || "INFO"; + const label = this.className; + this.log = LoggerProvider.getOrCreate({ level, label }); + + this.besu = new BesuTestLedger(); + this.fabric = new FabricTestLedgerV1({ + publishAllPorts: true, + imageName: "hyperledger/cactus-fabric-all-in-one", + imageVersion: "2021-03-02-ssh-hotfix", + }); + } + + public async stop(): Promise { + try { + this.log.info(`Stopping...`); + await Promise.all([ + this.besu.stop().then(() => this.besu.destroy()), + this.fabric.stop().then(() => this.fabric.destroy()), + ]); + this.log.info(`Stopped OK`); + } catch (ex) { + this.log.error(`Stopping crashed: `, ex); + throw ex; + } + } + + public async start(): Promise { + try { + this.log.info(`Starting dummy infrastructure...`); + await Promise.all([this.besu.start(), this.fabric.start()]); + this.log.info(`Started dummy infrastructure OK`); + } catch (ex) { + this.log.error(`Starting of dummy infrastructure crashed: `, ex); + throw ex; + } + } + + public async deployContracts(): Promise { + try { + this.log.info(`Deploying smart contracts...`); + + let daoTokenRepository; + { + this._besuAccount = await this.besu.createEthTestAccount(2000000); + const rpcApiHttpHost = await this.besu.getRpcApiHttpHost(); + + const connector = new PluginLedgerConnectorBesu({ + instanceId: "PluginLedgerConnectorBesu_Contract_Deployment", + rpcApiHttpHost, + logLevel: this.options.logLevel, + pluginRegistry: new PluginRegistry(), + }); + + const res = await connector.deployContract({ + bytecode: DaoTokenContract.bytecode, + gas: 1000000, + web3SigningCredential: { + ethAccount: this.besuAccount.get().address, + secret: this.besuAccount.get().privateKey, + type: Web3SigningCredentialType.PRIVATEKEYHEX, + }, + }); + const { + transactionReceipt: { contractAddress }, + } = res; + + daoTokenRepository = { + abi: DaoTokenContract.abi, + address: contractAddress as string, + bytecode: DaoTokenContract.bytecode, + }; + } + const out: ISupplyChainContractDeploymentInfo = { + daoTokenRepository, + }; + + this.log.info(`Deployed smart contracts OK`); + + return out; + } catch (ex) { + this.log.error(`Deployment of smart contracts crashed: `, ex); + throw ex; + } + } +} diff --git a/examples/cactus-carbon-accounting-backend/src/main/typescript/public-api.ts b/examples/cactus-carbon-accounting-backend/src/main/typescript/public-api.ts new file mode 100755 index 00000000000..0b340256c4c --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/main/typescript/public-api.ts @@ -0,0 +1,2 @@ +export { CarbonAccountingApp } from "./carbon-accounting-app"; +export { launchApp } from "./carbon-accounting-app-cli"; diff --git a/examples/cactus-carbon-accounting-backend/src/test/typescript/integration/api-surface.ts b/examples/cactus-carbon-accounting-backend/src/test/typescript/integration/api-surface.ts new file mode 100644 index 00000000000..bd90ac9cfdc --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/test/typescript/integration/api-surface.ts @@ -0,0 +1,9 @@ +const tap = require("tap"); +import * as publicApi from "../../../main/typescript/public-api"; + +tap.pass("Test file can be executed"); + +tap.test("Library can be loaded", (assert: any) => { + assert.plan(1); + assert.ok(publicApi); +}); diff --git a/examples/cactus-carbon-accounting-backend/src/test/typescript/unit/api-surface.ts b/examples/cactus-carbon-accounting-backend/src/test/typescript/unit/api-surface.ts new file mode 100644 index 00000000000..0155a492fa2 --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/src/test/typescript/unit/api-surface.ts @@ -0,0 +1,7 @@ +import test, { Test } from "tape"; +import * as publicApi from "../../../main/typescript/public-api"; + +test("Public API module can be loaded", (t: Test) => { + t.plan(1); + t.ok(publicApi); +}); diff --git a/examples/cactus-carbon-accounting-backend/tsconfig.json b/examples/cactus-carbon-accounting-backend/tsconfig.json new file mode 100644 index 00000000000..c7deae9c54a --- /dev/null +++ b/examples/cactus-carbon-accounting-backend/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist/lib/", /* Redirect output structure to the directory. */ + "declarationDir": "dist/types", + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/i-supply-chain-contract-deployment-info.ts b/examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/i-supply-chain-contract-deployment-info.ts index ef088ec6968..63412f6ff66 100644 --- a/examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/i-supply-chain-contract-deployment-info.ts +++ b/examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/i-supply-chain-contract-deployment-info.ts @@ -1,8 +1,5 @@ import { IEthContractDeployment } from "./i-eth-contract-deployment"; -import { IFabricContractDeployment } from "./i-fabric-contract-deployment"; export interface ISupplyChainContractDeploymentInfo { - bambooHarvestRepository: IEthContractDeployment; - bookshelfRepository: IEthContractDeployment; - shipmentRepository: IFabricContractDeployment; + daoTokenRepository: IEthContractDeployment; } diff --git a/examples/carbon-accounting/.dockerignore b/examples/carbon-accounting/.dockerignore new file mode 100644 index 00000000000..8bb9095e74c --- /dev/null +++ b/examples/carbon-accounting/.dockerignore @@ -0,0 +1,48 @@ +.git +*/*/node_modules +*/*/dist +*/*/build + +.config.json +.nyc_output/ +dist/ +.DS_Store +node_modules/ +docs/main +logs/ +jspm_packages/ +generated-sources/ +coverage/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# next.js build output +.next + +# vscode files +.vscode/* +!.vscode/template.launch.json + +# Introperability App specifics +examples/simple-asset-transfer/fabric/**/hfc-key-store/ + +bin/ +.tmp/ +lerna-debug.log +cactus-openapi-spec.json +cactus-openapi-spec-*.json +.npmrc +*.log diff --git a/examples/carbon-accounting/Dockerfile b/examples/carbon-accounting/Dockerfile new file mode 100644 index 00000000000..e45f3a7f682 --- /dev/null +++ b/examples/carbon-accounting/Dockerfile @@ -0,0 +1,126 @@ +FROM node:12.20.1-alpine3.12 as builder + +RUN apk update + +# Need JDK for the openapi-generator that is part of the build process +RUN apk add --no-cache openjdk8 + +# Need git because some of our npm depedencies might be coming +# straight from github instead of being an npm package on npmjs.com. +RUN apk add --no-cache git + +# Some install scripts of the npm package fabric-network need python +RUN apk add --no-cache python3 py3-pip + +RUN npm install modclean -g + +WORKDIR / +RUN mkdir /app/ +WORKDIR /app/ +COPY ./ ./ +RUN npm ci +RUN ./node_modules/.bin/lerna clean --yes +RUN ./node_modules/.bin/lerna bootstrap +RUN npm run build:dev:backend +RUN npm run webpack:dev:web +RUN npm run build:dev:frontend -- --scope='@hyperledger/cactus-example-supply-chain-frontend' +RUN ./node_modules/.bin/lerna clean --yes +RUN ./node_modules/.bin/lerna bootstrap -- --production --no-optional + +RUN rm -rf ./packages/cactus-test-plugin* +RUN rm -rf ./packages/cactus-test-cmd* +RUN rm -rf ./packages/cactus-test-api* +RUN rm -rf ./node_modules/ + +FROM docker:20.10.2-dind-rootless as runner + +USER root + +RUN apk update + +# Add bash for convenience, sh has less features +RUN apk add --no-cache bash + +# Need curl for healthchecks +RUN apk add --no-cache curl + +# The file binary is used to inspect exectubles when debugging container image issues +RUN apk add --no-cache file + +RUN apk add --no-cache nodejs +RUN apk add --no-cache npm + +RUN apk add --no-cache ca-certificates +RUN apk add --no-cache tzdata + +# Install supervisord because we need to run the docker daemon and also the fabric network +# meaning that we have multiple processes to run. +RUN apk add --no-cache supervisor + +ARG APP=/usr/src/app/ + +ENV TZ=Etc/UTC +ENV APP_USER=appuser + +RUN addgroup --system $APP_USER +RUN adduser --system $APP_USER -G $APP_USER +RUN addgroup $APP_USER rootless +RUN mkdir -p ${APP} + +COPY --chown=$APP_USER:$APP_USER --from=builder /app/ ${APP} + +RUN mkdir -p "${APP}/log/" +RUN chown -R $APP_USER:$APP_USER "${APP}/log/" + +# TODO: Can we hack it together so that the whole thing works rootless? +# USER $APP_USER + +WORKDIR ${APP} + +COPY --chown=${APP_USER}:${APP_USER} ./examples/carbon-accounting/healthcheck.sh / + +ENV CACTUS_NODE_ID=- +ENV CONSORTIUM_ID=- +ENV KEY_PAIR_PEM=- +ENV COCKPIT_WWW_ROOT=examples/cactus-example-supply-chain-frontend/www/ +ENV COCKPIT_TLS_ENABLED=false +ENV COCKPIT_CORS_DOMAIN_CSV=\* +ENV COCKPIT_MTLS_ENABLED=false +ENV COCKPIT_TLS_CERT_PEM=- +ENV COCKPIT_TLS_KEY_PEM=- +ENV COCKPIT_TLS_CLIENT_CA_PEM=- +ENV COCKPIT_HOST=0.0.0.0 +ENV COCKPIT_PORT=3000 +ENV API_MTLS_ENABLED=false +ENV API_TLS_ENABLED=false +ENV API_CORS_DOMAIN_CSV=\* +ENV API_TLS_CERT_PEM=- +ENV API_TLS_CLIENT_CA_PEM=- +ENV API_TLS_KEY_PEM=- +ENV API_HOST=0.0.0.0 +ENV API_PORT=4000 +ENV LOG_LEVEL=TRACE + +COPY examples/supply-chain-app/supervisord.conf /etc/supervisord.conf + +# supervisord web ui/dashboard +EXPOSE 9001 +# API #1 +EXPOSE 4000 +# API #2 +EXPOSE 4100 +# GUI #1 +EXPOSE 3000 +# GUI #2 +EXPOSE 3100 +# API #3 +EXPOSE 4200 +# GUI #3 +EXPOSE 3200 + +# Extend the parent image's entrypoint +# https://superuser.com/questions/1459466/can-i-add-an-additional-docker-entrypoint-script +ENTRYPOINT ["/usr/bin/supervisord"] +CMD ["--configuration", "/etc/supervisord.conf", "--nodaemon"] +HEALTHCHECK --interval=1s --timeout=5s --start-period=20s --retries=250 \ + CMD /usr/src/app/examples/supply-chain-app/healthcheck.sh diff --git a/examples/carbon-accounting/README.md b/examples/carbon-accounting/README.md new file mode 100644 index 00000000000..c95387e7672 --- /dev/null +++ b/examples/carbon-accounting/README.md @@ -0,0 +1,29 @@ +# Cactus Blockchain Carbon Accounting Example + +This is an implementation of the Hyperledger CA2 SIG's similarly named project +(which has multiple different DLTs working together), +but one that uses Hyperledger Cactus as its development framework instead of +relying on the vanilla ledger SDKs. + +At the same time this is also a case study of how can a real world project be +delivered with Hyperledger Cactus. + +## Usage + +Further details and documentation to be defined later. + +## Building and running the container locally + +```sh +# Change directories to the project root + +# Build the dockar image and tag it as "caeb" for carbon accounting example backend +DOCKER_BUILDKIT=1 docker build -f ./examples/carbon-accounting/Dockerfile . -t caeb + +# Run the built image with ports mapped to the host machine as you see fit +# The --privileged flag is required because we use Docker-in-Docker for pulling +# up ledger containers from within the container in order to have the example +# be completely self-contained where you don't need to worry about running +# multiple different ledgers just this one container. +docker run --rm -it --privileged -p 3000:3000 -p 3100:3100 -p 3200:3200 -p 4000:4000 -p 4100:4100 -p 4200:4200 caeb +``` \ No newline at end of file diff --git a/examples/carbon-accounting/healthcheck.sh b/examples/carbon-accounting/healthcheck.sh new file mode 100755 index 00000000000..c0a0e586b0b --- /dev/null +++ b/examples/carbon-accounting/healthcheck.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +curl -v -i -X OPTIONS http://127.0.0.1:${COCKPIT_PORT} \ No newline at end of file diff --git a/examples/carbon-accounting/supervisord.conf b/examples/carbon-accounting/supervisord.conf new file mode 100644 index 00000000000..c379c3afee2 --- /dev/null +++ b/examples/carbon-accounting/supervisord.conf @@ -0,0 +1,32 @@ +[supervisord] +logfile = /usr/src/app/log/supervisord.log +logfile_maxbytes = 50MB +logfile_backups=10 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +loglevel = info + +[inet_http_server] +port = 0.0.0.0:9001 + +[program:dockerd] +command=dockerd-entrypoint.sh +autostart=true +autorestart=true +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 + + +[program:supply-chain-app] +command=node /usr/src/app/examples/cactus-example-supply-chain-backend/dist/lib/main/typescript/supply-chain-app-cli.js +autostart=true +autorestart=unexpected +exitcodes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 diff --git a/lerna.json b/lerna.json index dac349f05d9..d525326e701 100644 --- a/lerna.json +++ b/lerna.json @@ -1,7 +1,8 @@ { "packages": [ "packages/cactus-*", - "examples/cactus-*" + "examples/cactus-*", + "examples/carbon-accounting/pkg/cactus-*" ], "version": "0.4.1", "command": { diff --git a/package-lock.json b/package-lock.json index 12b17190016..731a14fa787 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3154,6 +3154,40 @@ "fastq": "^1.6.0" } }, + "@nomiclabs/ethereumjs-vm": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/ethereumjs-vm/-/ethereumjs-vm-4.2.2.tgz", + "integrity": "sha512-8WmX94mMcJaZ7/m7yBbyuS6B+wuOul+eF+RY9fBpGhNaUpyMR/vFIcDojqcWQ4Yafe1tMKY5LDu2yfT4NZgV4Q==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "3.0.0", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, "@octokit/auth-token": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.3.tgz", @@ -3352,12 +3386,135 @@ "any-observable": "^0.3.0" } }, + "@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "requires": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true + }, + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, + "@solidity-parser/parser": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.11.1.tgz", + "integrity": "sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ==", + "dev": true + }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -3367,6 +3524,15 @@ "defer-to-connect": "^1.0.1" } }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/eslint": { "version": "7.2.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz", @@ -3409,6 +3575,12 @@ "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", "dev": true }, + "@types/lru-cache": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz", + "integrity": "sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -3447,6 +3619,24 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-QMg+9v0bbNJ2peLuHRWxzmy0HRJIG6gFZNhaRSp7S3ggSbCCxiqQB2/ybvhXyhHOCequpNkrx7OavNhrWOsW0A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/ssh2": { "version": "0.5.46", "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.46.tgz", @@ -3868,6 +4058,24 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3896,6 +4104,12 @@ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", @@ -4266,6 +4480,26 @@ "integrity": "sha512-ZswD8vwPtmBZzbn9xyi8XBQWXH3AvOQ43Za1KWYq7JeycrZuUYzx01KvHcVbXltjqH4y0MWrQ33008uLTqXuDw==", "dev": true }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, + "requires": { + "async": "^2.4.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, "async-hook-domain": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-1.1.3.tgz", @@ -4442,6 +4676,15 @@ } } }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "base64-arraybuffer": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", @@ -4505,6 +4748,12 @@ "integrity": "sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw==", "dev": true }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", + "dev": true + }, "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", @@ -4633,6 +4882,12 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -4746,6 +5001,26 @@ "node-releases": "^1.1.69" } }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dev": true, + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", @@ -5069,6 +5344,15 @@ "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", "dev": true }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "dev": true, + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, "chokidar": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", @@ -5353,6 +5637,12 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, "commander": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", @@ -6395,6 +6685,12 @@ "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==", "dev": true }, + "core-js-pure": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz", + "integrity": "sha512-PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -6834,6 +7130,15 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -7276,6 +7581,58 @@ } } }, + "encoding-down": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", + "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -8103,77 +8460,406 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "events-to-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", - "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "eth-sig-util": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", + "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "ethereumjs-abi": "0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true + } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "ethashjs": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", + "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "@types/node": "*" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz", + "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "dev": true, + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + } + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "ethereumjs-account": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", + "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", + "dev": true, + "requires": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + } + } + }, + "ethereumjs-blockchain": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", + "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", + "dev": true + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -8357,6 +9043,15 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dev": true, + "requires": { + "checkpoint-store": "^1.1.0" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -8607,6 +9302,23 @@ "resolve-dir": "^1.0.1" } }, + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -8648,6 +9360,12 @@ "vlq": "^0.2.1" } }, + "flow-stoplight": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", + "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", + "dev": true + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -8746,6 +9464,12 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -9630,6 +10354,12 @@ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", "dev": true }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", @@ -9691,28 +10421,284 @@ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "hardhat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.1.2.tgz", + "integrity": "sha512-42iOheDsDl6Gr7sBfpA0S+bQUIcXSDEUrrqmnFEcBHx9qBoQad3s212y2ODmmkdLt+PqqTM+Mq8N3bZDTdjoLg==", "dev": true, "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "@nomiclabs/ethereumjs-vm": "4.2.2", + "@sentry/node": "^5.18.1", + "@solidity-parser/parser": "^0.11.0", + "@types/bn.js": "^4.11.5", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "eth-sig-util": "^2.5.2", + "ethereum-cryptography": "^0.1.2", + "ethereumjs-abi": "^0.6.8", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "^7.1.3", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "lodash": "^4.17.11", + "merkle-patricia-tree": "3.0.0", + "mnemonist": "^0.38.0", + "mocha": "^7.1.2", + "node-fetch": "^2.6.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "slash": "^3.0.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "true-case-path": "^2.2.1", + "tsort": "0.0.1", + "uuid": "^3.3.2", + "ws": "^7.2.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true } } @@ -9828,6 +10814,12 @@ "is-stream": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -10062,6 +11054,18 @@ "minimatch": "^3.0.4" } }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, + "immutable": { + "version": "4.0.0-rc.12", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.12.tgz", + "integrity": "sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A==", + "dev": true + }, "import-fresh": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", @@ -10329,6 +11333,15 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, + "io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "requires": { + "fp-ts": "^1.0.0" + } + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -10514,6 +11527,12 @@ "is-extglob": "^2.1.1" } }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "dev": true + }, "is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", @@ -11071,6 +12090,12 @@ "supports-color": "^7.0.0" } }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -11354,6 +12379,16 @@ } } }, + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, "keypress": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", @@ -11375,6 +12410,15 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", @@ -11425,29 +12469,260 @@ "npmlog": "^4.1.2" } }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "errno": "~0.1.1" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "lint-staged": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.2.tgz", - "integrity": "sha512-78kNqNdDeKrnqWsexAmkOU3Z5wi+1CsQmUmfCuYgMTE8E4rAIX8RHW7xgxwAZ+LAayb7Cca4uYX4P3LlevzjVg==", + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", "dev": true, "requires": { - "chalk": "^4.0.0", + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-mem": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", + "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", + "dev": true, + "requires": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, + "memdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", + "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + } + } + }, + "level-packager": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", + "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", + "dev": true, + "requires": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", + "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", + "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + }, + "levelup": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", + "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", + "dev": true, + "requires": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "lint-staged": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.2.tgz", + "integrity": "sha512-78kNqNdDeKrnqWsexAmkOU3Z5wi+1CsQmUmfCuYgMTE8E4rAIX8RHW7xgxwAZ+LAayb7Cca4uYX4P3LlevzjVg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", "commander": "^5.0.0", "cosmiconfig": "^6.0.0", "debug": "^4.1.1", @@ -12087,6 +13362,18 @@ "yallist": "^4.0.0" } }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true + }, "macos-release": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", @@ -12243,6 +13530,31 @@ } } }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -12319,6 +13631,92 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, + "merkle-patricia-tree": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", + "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "level-ws": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", + "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -12456,107 +13854,438 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true - } - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "minstache": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minstache/-/minstache-1.2.0.tgz", - "integrity": "sha1-/xzEA6woRPaNvxjGYhKb5+sO/EE=", - "dev": true, - "requires": { - "commander": "1.0.4" - }, - "dependencies": { - "commander": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.4.tgz", - "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "minstache": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minstache/-/minstache-1.2.0.tgz", + "integrity": "sha1-/xzEA6woRPaNvxjGYhKb5+sO/EE=", + "dev": true, + "requires": { + "commander": "1.0.4" + }, + "dependencies": { + "commander": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.4.tgz", + "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", + "dev": true, + "requires": { + "keypress": "0.1.x" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "dev": true, + "requires": { + "mkdirp": "*" + } + }, + "mnemonist": { + "version": "0.38.3", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", + "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", + "dev": true, + "requires": { + "obliterator": "^1.6.1" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "keypress": "0.1.x" + "has-flag": "^3.0.0" } - } - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "is-number": "^7.0.0" } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, "modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -12689,6 +14418,24 @@ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "dev": true }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -13588,6 +15335,12 @@ "isobject": "^3.0.1" } }, + "obliterator": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", + "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", + "dev": true + }, "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", @@ -14867,6 +16620,23 @@ "inherits": "^2.0.1" } }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dev": true, + "requires": { + "bn.js": "^4.11.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "roarr": { "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", @@ -14903,6 +16673,12 @@ "aproba": "^1.1.1" } }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", @@ -14944,6 +16720,12 @@ "ajv-keywords": "^3.5.2" } }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, "secp256k1": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.0.tgz", @@ -14955,6 +16737,12 @@ "node-gyp-build": "^4.2.0" } }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "dev": true + }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -15481,6 +17269,68 @@ } } }, + "solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -15706,6 +17556,23 @@ } } }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true + } + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -16035,6 +17902,15 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, "strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -17954,6 +19830,12 @@ "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=", "dev": true }, + "true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true + }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -18093,6 +19975,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", + "dev": true + }, "tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -18121,6 +20009,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -18192,6 +20086,54 @@ "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + } + } + }, "undefsafe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", @@ -18444,6 +20386,181 @@ "object.getownpropertydescriptors": "^2.0.3" } }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + } + } + } + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -19390,6 +21507,165 @@ "integrity": "sha512-emOFRT9WVHw03QSvN5qor9QQT9+sw5vwxfYweivSMHTcAXPefwVae2FjO7JJjj8hCE4CzPOPeFM83VwT29HCww==", "dev": true }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/package.json b/package.json index ef8d281bdf6..b2bbc2dd7ac 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "eslint-plugin-promise": "4.1.1", "eslint-plugin-standard": "4.0.0", "git-cz": "4.7.1", + "hardhat": "2.1.2", "husky": "4.2.5", "inquirer": "7.1.0", "karma": "5.1.0", diff --git a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/api.ts b/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/api.ts deleted file mode 100644 index 682251644e8..00000000000 --- a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/api.ts +++ /dev/null @@ -1,258 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus API - * Interact with a Cactus deployment through HTTP. - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; - -/** - * - * @export - * @interface HealthCheckResponse - */ -export interface HealthCheckResponse { - /** - * - * @type {boolean} - * @memberof HealthCheckResponse - */ - success?: boolean; - /** - * - * @type {string} - * @memberof HealthCheckResponse - */ - createdAt: string; - /** - * - * @type {MemoryUsage} - * @memberof HealthCheckResponse - */ - memoryUsage: MemoryUsage; -} -/** - * - * @export - * @interface MemoryUsage - */ -export interface MemoryUsage { - /** - * - * @type {number} - * @memberof MemoryUsage - */ - rss?: number; - /** - * - * @type {number} - * @memberof MemoryUsage - */ - heapTotal?: number; - /** - * - * @type {number} - * @memberof MemoryUsage - */ - heapUsed?: number; - /** - * - * @type {number} - * @memberof MemoryUsage - */ - external?: number; - /** - * - * @type {number} - * @memberof MemoryUsage - */ - arrayBuffers?: number; -} - -/** - * DefaultApi - axios parameter creator - * @export - */ -export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * Returns the current timestamp of the API server as proof of health/liveness - * @summary Can be used to verify liveness of an API server instance - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHealthCheck: async (options: any = {}): Promise => { - const localVarPath = `/api/v1/api-server/healthcheck`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1: async (options: any = {}): Promise => { - const localVarPath = `/api/v1/api-server/get-prometheus-exporter-metrics`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DefaultApi - functional programming interface - * @export - */ -export const DefaultApiFp = function(configuration?: Configuration) { - return { - /** - * Returns the current timestamp of the API server as proof of health/liveness - * @summary Can be used to verify liveness of an API server instance - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getHealthCheck(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).getHealthCheck(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getPrometheusExporterMetricsV1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).getPrometheusExporterMetricsV1(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * DefaultApi - factory interface - * @export - */ -export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * Returns the current timestamp of the API server as proof of health/liveness - * @summary Can be used to verify liveness of an API server instance - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHealthCheck(options?: any): AxiosPromise { - return DefaultApiFp(configuration).getHealthCheck(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1(options?: any): AxiosPromise { - return DefaultApiFp(configuration).getPrometheusExporterMetricsV1(options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * DefaultApi - object-oriented interface - * @export - * @class DefaultApi - * @extends {BaseAPI} - */ -export class DefaultApi extends BaseAPI { - /** - * Returns the current timestamp of the API server as proof of health/liveness - * @summary Can be used to verify liveness of an API server instance - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public getHealthCheck(options?: any) { - return DefaultApiFp(this.configuration).getHealthCheck(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public getPrometheusExporterMetricsV1(options?: any) { - return DefaultApiFp(this.configuration).getPrometheusExporterMetricsV1(options).then((request) => request(this.axios, this.basePath)); - } -} - - diff --git a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/base.ts b/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/base.ts deleted file mode 100644 index adf5c6b69df..00000000000 --- a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/base.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus API - * Interact with a Cactus deployment through HTTP. - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; - -export const BASE_PATH = "https://www.cactus.stream".replace(/\/+$/, ""); - -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -/** - * - * @export - * @interface RequestArgs - */ -export interface RequestArgs { - url: string; - options: any; -} - -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - protected configuration: Configuration | undefined; - - constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -}; - -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} diff --git a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/configuration.ts b/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/configuration.ts deleted file mode 100644 index f4f99880d46..00000000000 --- a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/configuration.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus API - * Interact with a Cactus deployment through HTTP. - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export interface ConfigurationParameters { - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - username?: string; - password?: string; - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - basePath?: string; - baseOptions?: any; -} - -export class Configuration { - /** - * parameter for apiKey security - * @param name security name - * @memberof Configuration - */ - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - username?: string; - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - password?: string; - /** - * parameter for oauth2 security - * @param name security name - * @param scopes oauth2 scope - * @memberof Configuration - */ - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - /** - * override base path - * - * @type {string} - * @memberof Configuration - */ - basePath?: string; - /** - * base options for axios calls - * - * @type {any} - * @memberof Configuration - */ - baseOptions?: any; - - constructor(param: ConfigurationParameters = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - } -} diff --git a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/index.ts b/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/index.ts deleted file mode 100644 index eb4082062f6..00000000000 --- a/packages/cactus-cmd-api-server/src/main/typescript/generated/openapi/typescript-axios/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus API - * Interact with a Cactus deployment through HTTP. - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export * from "./api"; -export * from "./configuration"; - diff --git a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/api.ts b/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/api.ts deleted file mode 100644 index 70c6c60b5af..00000000000 --- a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/api.ts +++ /dev/null @@ -1,1163 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Besu - * Can perform basic tasks on a Besu ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; - -/** - * - * @export - * @interface BesuTransactionConfig - */ -export interface BesuTransactionConfig { - [key: string]: object | any; - - /** - * - * @type {string} - * @memberof BesuTransactionConfig - */ - rawTransaction?: string; - /** - * - * @type {string | number} - * @memberof BesuTransactionConfig - */ - from?: string | number; - /** - * - * @type {string} - * @memberof BesuTransactionConfig - */ - to?: string; - /** - * - * @type {string | number} - * @memberof BesuTransactionConfig - */ - value?: string | number; - /** - * - * @type {string | number} - * @memberof BesuTransactionConfig - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof BesuTransactionConfig - */ - gasPrice?: string | number; - /** - * - * @type {number} - * @memberof BesuTransactionConfig - */ - nonce?: number; - /** - * - * @type {string} - * @memberof BesuTransactionConfig - */ - data?: string; -} -/** - * - * @export - * @interface ConsistencyStrategy - */ -export interface ConsistencyStrategy { - /** - * - * @type {ReceiptType} - * @memberof ConsistencyStrategy - */ - receiptType: ReceiptType; - /** - * The amount of milliseconds to wait for the receipt to arrive to the connector. Defaults to 0 which means to wait for an unlimited amount of time. Note that this wait may be interrupted still by other parts of the infrastructure such as load balancers cutting of HTTP requests after some time even if they are the type that is supposed to be kept alive. The question of re-entrancy is a broader topic not in scope to discuss here, but it is important to mention it. - * @type {number} - * @memberof ConsistencyStrategy - */ - timeoutMs?: number; - /** - * The number of blocks to wait to be confirmed in addition to the block containing the transaction in question. Note that if the receipt type is set to only wait for node transaction pool ACK and this parameter is set to anything, but zero then the API will not accept the request due to conflicting parameters. - * @type {number} - * @memberof ConsistencyStrategy - */ - blockConfirmations: number; -} -/** - * - * @export - * @interface DeployContractSolidityBytecodeV1Request - */ -export interface DeployContractSolidityBytecodeV1Request { - /** - * The contract name for retrieve the contracts json on the keychain. - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - contractName: string; - /** - * - * @type {Web3SigningCredential} - * @memberof DeployContractSolidityBytecodeV1Request - */ - web3SigningCredential: Web3SigningCredential; - /** - * See https://ethereum.stackexchange.com/a/47556 regarding the maximum length of the bytecode - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - bytecode: string; - /** - * The keychainId for retrieve the contracts json. - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - keychainId: string; - /** - * - * @type {number} - * @memberof DeployContractSolidityBytecodeV1Request - */ - gas?: number; - /** - * - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - gasPrice?: string; - /** - * The amount of milliseconds to wait for a transaction receipt with theaddress of the contract(which indicates successful deployment) beforegiving up and crashing. - * @type {number} - * @memberof DeployContractSolidityBytecodeV1Request - */ - timeoutMs?: number; -} -/** - * - * @export - * @interface DeployContractSolidityBytecodeV1Response - */ -export interface DeployContractSolidityBytecodeV1Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof DeployContractSolidityBytecodeV1Response - */ - transactionReceipt: Web3TransactionReceipt; -} -/** - * - * @export - * @enum {string} - */ -export enum EthContractInvocationType { - SEND = 'SEND', - CALL = 'CALL' -} - -/** - * - * @export - * @interface InvokeContractV1Request - */ -export interface InvokeContractV1Request { - /** - * - * @type {Web3SigningCredential} - * @memberof InvokeContractV1Request - */ - web3SigningCredential: Web3SigningCredential; - /** - * The application binary interface of the solidity contract - * @type {Array} - * @memberof InvokeContractV1Request - */ - contractAbi: Array; - /** - * - * @type {string} - * @memberof InvokeContractV1Request - */ - contractAddress: string; - /** - * - * @type {EthContractInvocationType} - * @memberof InvokeContractV1Request - */ - invocationType: EthContractInvocationType; - /** - * The name of the contract method to invoke. - * @type {string} - * @memberof InvokeContractV1Request - */ - methodName: string; - /** - * The list of arguments to pass in to the contract method being invoked. - * @type {Array} - * @memberof InvokeContractV1Request - */ - params: Array; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - value?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - gasPrice?: string | number; - /** - * - * @type {number} - * @memberof InvokeContractV1Request - */ - nonce?: number; - /** - * The amount of milliseconds to wait for a transaction receipt beforegiving up and crashing. Only has any effect if the invocation type is SEND - * @type {number} - * @memberof InvokeContractV1Request - */ - timeoutMs?: number; -} -/** - * - * @export - * @interface InvokeContractV1Response - */ -export interface InvokeContractV1Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof InvokeContractV1Response - */ - transactionReceipt?: Web3TransactionReceipt; - /** - * - * @type {any} - * @memberof InvokeContractV1Response - */ - callOutput?: any | null; -} -/** - * - * @export - * @interface InvokeContractV2Request - */ -export interface InvokeContractV2Request { - /** - * - * @type {string} - * @memberof InvokeContractV2Request - */ - contractName: string; - /** - * - * @type {Web3SigningCredential} - * @memberof InvokeContractV2Request - */ - signingCredential: Web3SigningCredential; - /** - * - * @type {EthContractInvocationType} - * @memberof InvokeContractV2Request - */ - invocationType: EthContractInvocationType; - /** - * The name of the contract method to invoke. - * @type {string} - * @memberof InvokeContractV2Request - */ - methodName: string; - /** - * The list of arguments to pass in to the contract method being invoked. - * @type {Array} - * @memberof InvokeContractV2Request - */ - params: Array; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - value?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - gasPrice?: string | number; - /** - * - * @type {number} - * @memberof InvokeContractV2Request - */ - nonce?: number; - /** - * The amount of milliseconds to wait for a transaction receipt beforegiving up and crashing. Only has any effect if the invocation type is SEND - * @type {number} - * @memberof InvokeContractV2Request - */ - timeoutMs?: number; - /** - * The keychainId for retrieve the contracts json. - * @type {string} - * @memberof InvokeContractV2Request - */ - keychainId?: string; -} -/** - * - * @export - * @interface InvokeContractV2Response - */ -export interface InvokeContractV2Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof InvokeContractV2Response - */ - transactionReceipt?: Web3TransactionReceipt; - /** - * - * @type {any} - * @memberof InvokeContractV2Response - */ - callOutput?: any | null; - /** - * - * @type {boolean} - * @memberof InvokeContractV2Response - */ - success: boolean; -} -/** - * Enumerates the possible types of receipts that can be waited for by someone or something that has requested the execution of a transaction on a ledger. - * @export - * @enum {string} - */ -export enum ReceiptType { - NODETXPOOLACK = 'NODE_TX_POOL_ACK', - LEDGERBLOCKACK = 'LEDGER_BLOCK_ACK' -} - -/** - * - * @export - * @interface RunTransactionRequest - */ -export interface RunTransactionRequest { - /** - * - * @type {Web3SigningCredential} - * @memberof RunTransactionRequest - */ - web3SigningCredential: Web3SigningCredential; - /** - * - * @type {BesuTransactionConfig} - * @memberof RunTransactionRequest - */ - transactionConfig: BesuTransactionConfig; - /** - * - * @type {ConsistencyStrategy} - * @memberof RunTransactionRequest - */ - consistencyStrategy: ConsistencyStrategy; -} -/** - * - * @export - * @interface RunTransactionResponse - */ -export interface RunTransactionResponse { - /** - * - * @type {Web3TransactionReceipt} - * @memberof RunTransactionResponse - */ - transactionReceipt: Web3TransactionReceipt; -} -/** - * - * @export - * @interface SignTransactionRequest - */ -export interface SignTransactionRequest { - /** - * - * @type {string} - * @memberof SignTransactionRequest - */ - keychainId: string; - /** - * - * @type {string} - * @memberof SignTransactionRequest - */ - keychainRef: string; - /** - * The transaction hash of ledger will be used to fetch the contain. - * @type {string} - * @memberof SignTransactionRequest - */ - transactionHash: string; -} -/** - * - * @export - * @interface SignTransactionResponse - */ -export interface SignTransactionResponse { - /** - * The signatures of ledger from the corresponding transaction hash. - * @type {string} - * @memberof SignTransactionResponse - */ - signature: string; -} -/** - * - * @export - * @interface SolidityContractJsonArtifact - */ -export interface SolidityContractJsonArtifact { - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - contractName: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - metadata?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - bytecode?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - deployedBytecode?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - sourceMap?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - deployedSourceMap?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - sourcePath?: string; - /** - * - * @type {{ [key: string]: object; }} - * @memberof SolidityContractJsonArtifact - */ - compiler?: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof SolidityContractJsonArtifact - */ - functionHashes?: { [key: string]: object; }; - /** - * - * @type {object} - * @memberof SolidityContractJsonArtifact - */ - gasEstimates?: object; -} -/** - * @type Web3SigningCredential - * @export - */ -export type Web3SigningCredential = Web3SigningCredentialCactusKeychainRef | Web3SigningCredentialNone | Web3SigningCredentialPrivateKeyHex; - -/** - * - * @export - * @interface Web3SigningCredentialCactusKeychainRef - */ -export interface Web3SigningCredentialCactusKeychainRef { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - type: Web3SigningCredentialType; - /** - * The ethereum account (public key) that the credential belongs to. Basically the username in the traditional terminology of authentication. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - ethAccount: string; - /** - * The key to use when looking up the the keychain entry holding the secret pointed to by the keychainEntryKey parameter. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - keychainEntryKey: string; - /** - * The keychain ID to use when looking up the the keychain plugin instance that will be used to retrieve the secret pointed to by the keychainEntryKey parameter. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - keychainId: string; -} -/** - * Using this denotes that there is no signing required because the transaction is pre-signed. - * @export - * @interface Web3SigningCredentialNone - */ -export interface Web3SigningCredentialNone { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialNone - */ - type: Web3SigningCredentialType; -} -/** - * - * @export - * @interface Web3SigningCredentialPrivateKeyHex - */ -export interface Web3SigningCredentialPrivateKeyHex { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - type: Web3SigningCredentialType; - /** - * The ethereum account (public key) that the credential belongs to. Basically the username in the traditional terminology of authentication. - * @type {string} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - ethAccount: string; - /** - * The HEX encoded private key of an eth account. - * @type {string} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - secret: string; -} -/** - * - * @export - * @enum {string} - */ -export enum Web3SigningCredentialType { - CACTUSKEYCHAINREF = 'CACTUS_KEYCHAIN_REF', - GETHKEYCHAINPASSWORD = 'GETH_KEYCHAIN_PASSWORD', - PRIVATEKEYHEX = 'PRIVATE_KEY_HEX', - NONE = 'NONE' -} - -/** - * - * @export - * @interface Web3TransactionReceipt - */ -export interface Web3TransactionReceipt { - [key: string]: object | any; - - /** - * - * @type {boolean} - * @memberof Web3TransactionReceipt - */ - status: boolean; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - transactionHash: string; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - transactionIndex: number; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - blockHash: string; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - blockNumber: number; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - gasUsed: number; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - contractAddress?: string | null; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - from: string; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - to: string; -} - -/** - * DefaultApi - axios parameter creator - * @export - */ -export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuDeployContractSolidityBytecode: async (deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/deploy-contract-solidity-bytecode`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof deployContractSolidityBytecodeV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(deployContractSolidityBytecodeV1Request !== undefined ? deployContractSolidityBytecodeV1Request : {}) : (deployContractSolidityBytecodeV1Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuInvokeContract: async (invokeContractV1Request?: InvokeContractV1Request, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/invoke-contract`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof invokeContractV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(invokeContractV1Request !== undefined ? invokeContractV1Request : {}) : (invokeContractV1Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Executes a transaction on a besu ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuRunTransaction: async (runTransactionRequest?: RunTransactionRequest, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/run-transaction`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof runTransactionRequest !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(runTransactionRequest !== undefined ? runTransactionRequest : {}) : (runTransactionRequest || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV2BesuInvokeContract: async (invokeContractV2Request?: InvokeContractV2Request, options: any = {}): Promise => { - const localVarPath = `/api/v2/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/invoke-contract`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof invokeContractV2Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(invokeContractV2Request !== undefined ? invokeContractV2Request : {}) : (invokeContractV2Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1: async (options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/get-prometheus-exporter-metrics`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * Obtain signatures of ledger from the corresponding transaction hash. - * @summary Obtain signatures of ledger from the corresponding transaction hash. - * @param {SignTransactionRequest} signTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - signTransactionV1: async (signTransactionRequest: SignTransactionRequest, options: any = {}): Promise => { - // verify required parameter 'signTransactionRequest' is not null or undefined - if (signTransactionRequest === null || signTransactionRequest === undefined) { - throw new RequiredError('signTransactionRequest','Required parameter signTransactionRequest was null or undefined when calling signTransactionV1.'); - } - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-besu/sign-transaction`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof signTransactionRequest !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(signTransactionRequest !== undefined ? signTransactionRequest : {}) : (signTransactionRequest || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DefaultApi - functional programming interface - * @export - */ -export const DefaultApiFp = function(configuration?: Configuration) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1BesuInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1BesuInvokeContract(invokeContractV1Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Executes a transaction on a besu ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1BesuRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1BesuRunTransaction(runTransactionRequest, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV2BesuInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV2BesuInvokeContract(invokeContractV2Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getPrometheusExporterMetricsV1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).getPrometheusExporterMetricsV1(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * Obtain signatures of ledger from the corresponding transaction hash. - * @summary Obtain signatures of ledger from the corresponding transaction hash. - * @param {SignTransactionRequest} signTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async signTransactionV1(signTransactionRequest: SignTransactionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).signTransactionV1(signTransactionRequest, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * DefaultApi - factory interface - * @export - */ -export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1BesuInvokeContract(invokeContractV1Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Executes a transaction on a besu ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1BesuRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1BesuRunTransaction(runTransactionRequest, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV2BesuInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV2BesuInvokeContract(invokeContractV2Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1(options?: any): AxiosPromise { - return DefaultApiFp(configuration).getPrometheusExporterMetricsV1(options).then((request) => request(axios, basePath)); - }, - /** - * Obtain signatures of ledger from the corresponding transaction hash. - * @summary Obtain signatures of ledger from the corresponding transaction hash. - * @param {SignTransactionRequest} signTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - signTransactionV1(signTransactionRequest: SignTransactionRequest, options?: any): AxiosPromise { - return DefaultApiFp(configuration).signTransactionV1(signTransactionRequest, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * DefaultApi - object-oriented interface - * @export - * @class DefaultApi - * @extends {BaseAPI} - */ -export class DefaultApi extends BaseAPI { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any) { - return DefaultApiFp(this.configuration).apiV1BesuDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1BesuInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any) { - return DefaultApiFp(this.configuration).apiV1BesuInvokeContract(invokeContractV1Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Executes a transaction on a besu ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1BesuRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any) { - return DefaultApiFp(this.configuration).apiV1BesuRunTransaction(runTransactionRequest, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV2BesuInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any) { - return DefaultApiFp(this.configuration).apiV2BesuInvokeContract(invokeContractV2Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public getPrometheusExporterMetricsV1(options?: any) { - return DefaultApiFp(this.configuration).getPrometheusExporterMetricsV1(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * Obtain signatures of ledger from the corresponding transaction hash. - * @summary Obtain signatures of ledger from the corresponding transaction hash. - * @param {SignTransactionRequest} signTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public signTransactionV1(signTransactionRequest: SignTransactionRequest, options?: any) { - return DefaultApiFp(this.configuration).signTransactionV1(signTransactionRequest, options).then((request) => request(this.axios, this.basePath)); - } -} - - diff --git a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/base.ts b/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/base.ts deleted file mode 100644 index f62cfb8bf91..00000000000 --- a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/base.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Besu - * Can perform basic tasks on a Besu ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; - -export const BASE_PATH = "https://www.cactus.stream".replace(/\/+$/, ""); - -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -/** - * - * @export - * @interface RequestArgs - */ -export interface RequestArgs { - url: string; - options: any; -} - -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - protected configuration: Configuration | undefined; - - constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -}; - -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} diff --git a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/configuration.ts b/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/configuration.ts deleted file mode 100644 index 15244eaa832..00000000000 --- a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/configuration.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Besu - * Can perform basic tasks on a Besu ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export interface ConfigurationParameters { - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - username?: string; - password?: string; - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - basePath?: string; - baseOptions?: any; -} - -export class Configuration { - /** - * parameter for apiKey security - * @param name security name - * @memberof Configuration - */ - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - username?: string; - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - password?: string; - /** - * parameter for oauth2 security - * @param name security name - * @param scopes oauth2 scope - * @memberof Configuration - */ - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - /** - * override base path - * - * @type {string} - * @memberof Configuration - */ - basePath?: string; - /** - * base options for axios calls - * - * @type {any} - * @memberof Configuration - */ - baseOptions?: any; - - constructor(param: ConfigurationParameters = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - } -} diff --git a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/index.ts b/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/index.ts deleted file mode 100644 index 078fdf6488a..00000000000 --- a/packages/cactus-plugin-ledger-connector-besu/src/main/typescript/generated/openapi/typescript-axios/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Besu - * Can perform basic tasks on a Besu ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export * from "./api"; -export * from "./configuration"; - diff --git a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/api.ts b/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/api.ts deleted file mode 100644 index a865a0df485..00000000000 --- a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/api.ts +++ /dev/null @@ -1,725 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Fabric - * Can perform basic tasks on a fabric ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; - -/** - * - * @export - * @interface ConnectionProfile - */ -export interface ConnectionProfile { - [key: string]: object | any; - - /** - * - * @type {string} - * @memberof ConnectionProfile - */ - name: string; - /** - * - * @type {string} - * @memberof ConnectionProfile - */ - x_type?: string; - /** - * - * @type {string} - * @memberof ConnectionProfile - */ - description: string; - /** - * - * @type {string} - * @memberof ConnectionProfile - */ - version: string; - /** - * - * @type {ConnectionProfileClient} - * @memberof ConnectionProfile - */ - client?: ConnectionProfileClient; - /** - * - * @type {{ [key: string]: object; }} - * @memberof ConnectionProfile - */ - channels?: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof ConnectionProfile - */ - organizations: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof ConnectionProfile - */ - orderers?: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof ConnectionProfile - */ - peers: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof ConnectionProfile - */ - certificateAuthorities?: { [key: string]: object; }; -} -/** - * - * @export - * @interface ConnectionProfileClient - */ -export interface ConnectionProfileClient { - /** - * - * @type {string} - * @memberof ConnectionProfileClient - */ - organization?: string; -} -/** - * - * @export - * @enum {string} - */ -export enum DefaultEventHandlerStrategy { - MSPIDSCOPEALLFORTX = 'MSPID_SCOPE_ALLFORTX', - MSPIDSCOPEANYFORTX = 'MSPID_SCOPE_ANYFORTX', - NETWORKSCOPEALLFORTX = 'NETWORK_SCOPE_ALLFORTX', - NETWORKSCOPEANYFORTX = 'NETWORK_SCOPE_ANYFORTX' -} - -/** - * - * @export - * @interface DeployContractGoSourceV1Request - */ -export interface DeployContractGoSourceV1Request { - /** - * - * @type {string} - * @memberof DeployContractGoSourceV1Request - */ - policyDslSource: string; - /** - * The TLS root cert files that will be passed to the chaincode instantiation command. - * @type {string} - * @memberof DeployContractGoSourceV1Request - */ - tlsRootCertFiles: string; - /** - * The name of the Fabric channel where the contract will get instantiated. - * @type {string} - * @memberof DeployContractGoSourceV1Request - */ - channelId: string; - /** - * - * @type {Array} - * @memberof DeployContractGoSourceV1Request - */ - targetOrganizations: Array; - /** - * An array of peer addresses where the contract will be instantiated. - * @type {Array} - * @memberof DeployContractGoSourceV1Request - */ - targetPeerAddresses: Array; - /** - * - * @type {DeployContractGoSourceV1RequestConstructorArgs} - * @memberof DeployContractGoSourceV1Request - */ - constructorArgs?: DeployContractGoSourceV1RequestConstructorArgs; - /** - * - * @type {string} - * @memberof DeployContractGoSourceV1Request - */ - chainCodeVersion: string; - /** - * - * @type {FileBase64} - * @memberof DeployContractGoSourceV1Request - */ - goSource: FileBase64; - /** - * - * @type {FileBase64} - * @memberof DeployContractGoSourceV1Request - */ - goMod?: FileBase64; - /** - * The go module name that will be used for the go compilation process. - * @type {string} - * @memberof DeployContractGoSourceV1Request - */ - moduleName?: string; - /** - * - * @type {Array} - * @memberof DeployContractGoSourceV1Request - */ - pinnedDeps?: Array; - /** - * Indicates to the go chaincode compiler of Cactus if it should do an actual go compilation with the contact source or if it should just execute the go mod tidy command. - * @type {boolean} - * @memberof DeployContractGoSourceV1Request - */ - modTidyOnly?: boolean | null; -} -/** - * - * @export - * @interface DeployContractGoSourceV1RequestConstructorArgs - */ -export interface DeployContractGoSourceV1RequestConstructorArgs { - /** - * - * @type {Array} - * @memberof DeployContractGoSourceV1RequestConstructorArgs - */ - Args?: Array; -} -/** - * - * @export - * @interface DeployContractGoSourceV1Response - */ -export interface DeployContractGoSourceV1Response { - /** - * - * @type {boolean} - * @memberof DeployContractGoSourceV1Response - */ - success: boolean; - /** - * - * @type {SSHExecCommandResponse} - * @memberof DeployContractGoSourceV1Response - */ - installationCommandResponse: SSHExecCommandResponse; - /** - * - * @type {SSHExecCommandResponse} - * @memberof DeployContractGoSourceV1Response - */ - instantiationCommandResponse: SSHExecCommandResponse; -} -/** - * - * @export - * @interface DeploymentTargetOrganization - */ -export interface DeploymentTargetOrganization { - /** - * Mapped to environment variables of the Fabric CLI container. - * @type {string} - * @memberof DeploymentTargetOrganization - */ - CORE_PEER_LOCALMSPID: string; - /** - * Mapped to environment variables of the Fabric CLI container. - * @type {string} - * @memberof DeploymentTargetOrganization - */ - CORE_PEER_ADDRESS: string; - /** - * Mapped to environment variables of the Fabric CLI container. - * @type {string} - * @memberof DeploymentTargetOrganization - */ - CORE_PEER_MSPCONFIGPATH: string; - /** - * Mapped to environment variables of the Fabric CLI container. - * @type {string} - * @memberof DeploymentTargetOrganization - */ - CORE_PEER_TLS_ROOTCERT_FILE: string; - /** - * Mapped to environment variables of the Fabric CLI container. - * @type {string} - * @memberof DeploymentTargetOrganization - */ - ORDERER_TLS_ROOTCERT_FILE: string; -} -/** - * - * @export - * @enum {string} - */ -export enum FabricContractInvocationType { - SEND = 'FabricContractInvocationType.SEND', - CALL = 'FabricContractInvocationType.CALL' -} - -/** - * - * @export - * @interface FabricSigningCredential - */ -export interface FabricSigningCredential { - /** - * - * @type {string} - * @memberof FabricSigningCredential - */ - keychainId: string; - /** - * - * @type {string} - * @memberof FabricSigningCredential - */ - keychainRef: string; -} -/** - * Represents a file-system file that has a name and a body which holds the file contents as a Base64 encoded string - * @export - * @interface FileBase64 - */ -export interface FileBase64 { - /** - * The file\'s contents encoded as a Base64 string. - * @type {string} - * @memberof FileBase64 - */ - body: string; - /** - * The name as referred to on a file system - * @type {string} - * @memberof FileBase64 - */ - filename: string; -} -/** - * - * @export - * @interface GatewayDiscoveryOptions - */ -export interface GatewayDiscoveryOptions { - /** - * - * @type {boolean} - * @memberof GatewayDiscoveryOptions - */ - asLocalhost?: boolean; - /** - * - * @type {boolean} - * @memberof GatewayDiscoveryOptions - */ - enabled?: boolean; -} -/** - * - * @export - * @interface GatewayEventHandlerOptions - */ -export interface GatewayEventHandlerOptions { - /** - * - * @type {number} - * @memberof GatewayEventHandlerOptions - */ - commitTimeout?: number; - /** - * - * @type {DefaultEventHandlerStrategy} - * @memberof GatewayEventHandlerOptions - */ - strategy: DefaultEventHandlerStrategy; -} -/** - * - * @export - * @interface InlineResponse501 - */ -export interface InlineResponse501 { - /** - * - * @type {string} - * @memberof InlineResponse501 - */ - message?: string; -} -/** - * - * @export - * @interface RunTransactionRequest - */ -export interface RunTransactionRequest { - /** - * - * @type {FabricSigningCredential} - * @memberof RunTransactionRequest - */ - signingCredential: FabricSigningCredential; - /** - * - * @type {string} - * @memberof RunTransactionRequest - */ - channelName: string; - /** - * - * @type {string} - * @memberof RunTransactionRequest - */ - contractName: string; - /** - * - * @type {FabricContractInvocationType} - * @memberof RunTransactionRequest - */ - invocationType: FabricContractInvocationType; - /** - * - * @type {string} - * @memberof RunTransactionRequest - */ - methodName: string; - /** - * - * @type {Array} - * @memberof RunTransactionRequest - */ - params: Array; -} -/** - * - * @export - * @interface RunTransactionResponse - */ -export interface RunTransactionResponse { - /** - * - * @type {string} - * @memberof RunTransactionResponse - */ - functionOutput: string; - /** - * - * @type {boolean} - * @memberof RunTransactionResponse - */ - success: boolean; -} -/** - * - * @export - * @interface SSHExecCommandResponse - */ -export interface SSHExecCommandResponse { - /** - * - * @type {string} - * @memberof SSHExecCommandResponse - */ - stdout: string; - /** - * - * @type {string} - * @memberof SSHExecCommandResponse - */ - stderr: string; - /** - * - * @type {number} - * @memberof SSHExecCommandResponse - */ - code: number | null; - /** - * - * @type {string} - * @memberof SSHExecCommandResponse - */ - signal: string | null; -} - -/** - * DefaultApi - axios parameter creator - * @export - */ -export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Deploys a chaincode contract in the form of a go sources. - * @param {DeployContractGoSourceV1Request} [deployContractGoSourceV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deployContractGoSourceV1: async (deployContractGoSourceV1Request?: DeployContractGoSourceV1Request, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-fabric/deploy-contract-go-source`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof deployContractGoSourceV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(deployContractGoSourceV1Request !== undefined ? deployContractGoSourceV1Request : {}) : (deployContractGoSourceV1Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1: async (options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-fabric/get-prometheus-exporter-metrics`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Runs a transaction on a Fabric ledger. - * @param {RunTransactionRequest} runTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - runTransactionV1: async (runTransactionRequest: RunTransactionRequest, options: any = {}): Promise => { - // verify required parameter 'runTransactionRequest' is not null or undefined - if (runTransactionRequest === null || runTransactionRequest === undefined) { - throw new RequiredError('runTransactionRequest','Required parameter runTransactionRequest was null or undefined when calling runTransactionV1.'); - } - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-fabric/run-transaction`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof runTransactionRequest !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(runTransactionRequest !== undefined ? runTransactionRequest : {}) : (runTransactionRequest || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DefaultApi - functional programming interface - * @export - */ -export const DefaultApiFp = function(configuration?: Configuration) { - return { - /** - * - * @summary Deploys a chaincode contract in the form of a go sources. - * @param {DeployContractGoSourceV1Request} [deployContractGoSourceV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deployContractGoSourceV1(deployContractGoSourceV1Request?: DeployContractGoSourceV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).deployContractGoSourceV1(deployContractGoSourceV1Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getPrometheusExporterMetricsV1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).getPrometheusExporterMetricsV1(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Runs a transaction on a Fabric ledger. - * @param {RunTransactionRequest} runTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async runTransactionV1(runTransactionRequest: RunTransactionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).runTransactionV1(runTransactionRequest, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * DefaultApi - factory interface - * @export - */ -export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * - * @summary Deploys a chaincode contract in the form of a go sources. - * @param {DeployContractGoSourceV1Request} [deployContractGoSourceV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deployContractGoSourceV1(deployContractGoSourceV1Request?: DeployContractGoSourceV1Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).deployContractGoSourceV1(deployContractGoSourceV1Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1(options?: any): AxiosPromise { - return DefaultApiFp(configuration).getPrometheusExporterMetricsV1(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Runs a transaction on a Fabric ledger. - * @param {RunTransactionRequest} runTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - runTransactionV1(runTransactionRequest: RunTransactionRequest, options?: any): AxiosPromise { - return DefaultApiFp(configuration).runTransactionV1(runTransactionRequest, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * DefaultApi - object-oriented interface - * @export - * @class DefaultApi - * @extends {BaseAPI} - */ -export class DefaultApi extends BaseAPI { - /** - * - * @summary Deploys a chaincode contract in the form of a go sources. - * @param {DeployContractGoSourceV1Request} [deployContractGoSourceV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public deployContractGoSourceV1(deployContractGoSourceV1Request?: DeployContractGoSourceV1Request, options?: any) { - return DefaultApiFp(this.configuration).deployContractGoSourceV1(deployContractGoSourceV1Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public getPrometheusExporterMetricsV1(options?: any) { - return DefaultApiFp(this.configuration).getPrometheusExporterMetricsV1(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Runs a transaction on a Fabric ledger. - * @param {RunTransactionRequest} runTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public runTransactionV1(runTransactionRequest: RunTransactionRequest, options?: any) { - return DefaultApiFp(this.configuration).runTransactionV1(runTransactionRequest, options).then((request) => request(this.axios, this.basePath)); - } -} - - diff --git a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/base.ts b/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/base.ts deleted file mode 100644 index 617b7cd5362..00000000000 --- a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/base.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Fabric - * Can perform basic tasks on a fabric ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; - -export const BASE_PATH = "https://www.cactus.stream".replace(/\/+$/, ""); - -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -/** - * - * @export - * @interface RequestArgs - */ -export interface RequestArgs { - url: string; - options: any; -} - -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - protected configuration: Configuration | undefined; - - constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -}; - -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} diff --git a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/configuration.ts b/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/configuration.ts deleted file mode 100644 index e23fc1b01ca..00000000000 --- a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/configuration.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Fabric - * Can perform basic tasks on a fabric ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export interface ConfigurationParameters { - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - username?: string; - password?: string; - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - basePath?: string; - baseOptions?: any; -} - -export class Configuration { - /** - * parameter for apiKey security - * @param name security name - * @memberof Configuration - */ - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - username?: string; - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - password?: string; - /** - * parameter for oauth2 security - * @param name security name - * @param scopes oauth2 scope - * @memberof Configuration - */ - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - /** - * override base path - * - * @type {string} - * @memberof Configuration - */ - basePath?: string; - /** - * base options for axios calls - * - * @type {any} - * @memberof Configuration - */ - baseOptions?: any; - - constructor(param: ConfigurationParameters = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - } -} diff --git a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/index.ts b/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/index.ts deleted file mode 100644 index e60827b269f..00000000000 --- a/packages/cactus-plugin-ledger-connector-fabric/src/main/typescript/generated/openapi/typescript-axios/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Fabric - * Can perform basic tasks on a fabric ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export * from "./api"; -export * from "./configuration"; - diff --git a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/api.ts b/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/api.ts deleted file mode 100644 index f75f9527512..00000000000 --- a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/api.ts +++ /dev/null @@ -1,1034 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Quorum - * Can perform basic tasks on a Quorum ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; - -/** - * - * @export - * @interface DeployContractSolidityBytecodeV1Request - */ -export interface DeployContractSolidityBytecodeV1Request { - /** - * The contract name for retrieve the contracts json on the keychain. - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - contractName: string; - /** - * - * @type {Web3SigningCredential} - * @memberof DeployContractSolidityBytecodeV1Request - */ - web3SigningCredential: Web3SigningCredential; - /** - * See https://ethereum.stackexchange.com/a/47556 regarding the maximum length of the bytecode - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - bytecode: string; - /** - * The keychainId for retrieve the contracts json. - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - keychainId: string; - /** - * - * @type {number} - * @memberof DeployContractSolidityBytecodeV1Request - */ - gas?: number; - /** - * - * @type {string} - * @memberof DeployContractSolidityBytecodeV1Request - */ - gasPrice?: string; - /** - * The amount of milliseconds to wait for a transaction receipt with theaddress of the contract(which indicates successful deployment) beforegiving up and crashing. - * @type {number} - * @memberof DeployContractSolidityBytecodeV1Request - */ - timeoutMs?: number; -} -/** - * - * @export - * @interface DeployContractSolidityBytecodeV1Response - */ -export interface DeployContractSolidityBytecodeV1Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof DeployContractSolidityBytecodeV1Response - */ - transactionReceipt: Web3TransactionReceipt; -} -/** - * - * @export - * @enum {string} - */ -export enum EthContractInvocationType { - SEND = 'SEND', - CALL = 'CALL' -} - -/** - * - * @export - * @interface InvokeContractV1Request - */ -export interface InvokeContractV1Request { - /** - * - * @type {Web3SigningCredential} - * @memberof InvokeContractV1Request - */ - web3SigningCredential: Web3SigningCredential; - /** - * The application binary interface of the solidity contract - * @type {Array} - * @memberof InvokeContractV1Request - */ - contractAbi: Array; - /** - * - * @type {string} - * @memberof InvokeContractV1Request - */ - contractAddress: string; - /** - * - * @type {EthContractInvocationType} - * @memberof InvokeContractV1Request - */ - invocationType: EthContractInvocationType; - /** - * The name of the contract method to invoke. - * @type {string} - * @memberof InvokeContractV1Request - */ - methodName: string; - /** - * The list of arguments to pass in to the contract method being invoked. - * @type {Array} - * @memberof InvokeContractV1Request - */ - params: Array; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - gasPrice?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV1Request - */ - value?: string | number; - /** - * - * @type {number} - * @memberof InvokeContractV1Request - */ - nonce?: number; - /** - * The amount of milliseconds to wait for a transaction receipt beforegiving up and crashing. Only has any effect if the invocation type is SEND - * @type {number} - * @memberof InvokeContractV1Request - */ - timeoutMs?: number; -} -/** - * - * @export - * @interface InvokeContractV1Response - */ -export interface InvokeContractV1Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof InvokeContractV1Response - */ - transactionReceipt?: Web3TransactionReceipt; - /** - * - * @type {any} - * @memberof InvokeContractV1Response - */ - callOutput?: any | null; -} -/** - * - * @export - * @interface InvokeContractV2Request - */ -export interface InvokeContractV2Request { - /** - * - * @type {string} - * @memberof InvokeContractV2Request - */ - contractName: string; - /** - * - * @type {Web3SigningCredential} - * @memberof InvokeContractV2Request - */ - signingCredential: Web3SigningCredential; - /** - * - * @type {EthContractInvocationType} - * @memberof InvokeContractV2Request - */ - invocationType: EthContractInvocationType; - /** - * The name of the contract method to invoke. - * @type {string} - * @memberof InvokeContractV2Request - */ - methodName: string; - /** - * The list of arguments to pass in to the contract method being invoked. - * @type {Array} - * @memberof InvokeContractV2Request - */ - params: Array; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - value?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof InvokeContractV2Request - */ - gasPrice?: string | number; - /** - * - * @type {number} - * @memberof InvokeContractV2Request - */ - nonce?: number; - /** - * The amount of milliseconds to wait for a transaction receipt beforegiving up and crashing. Only has any effect if the invocation type is SEND - * @type {number} - * @memberof InvokeContractV2Request - */ - timeoutMs?: number; - /** - * The keychainId for retrieve the contracts json. - * @type {string} - * @memberof InvokeContractV2Request - */ - keychainId?: string; -} -/** - * - * @export - * @interface InvokeContractV2Response - */ -export interface InvokeContractV2Response { - /** - * - * @type {Web3TransactionReceipt} - * @memberof InvokeContractV2Response - */ - transactionReceipt?: Web3TransactionReceipt; - /** - * - * @type {any} - * @memberof InvokeContractV2Response - */ - callOutput?: any | null; - /** - * - * @type {boolean} - * @memberof InvokeContractV2Response - */ - success: boolean; -} -/** - * - * @export - * @interface QuorumTransactionConfig - */ -export interface QuorumTransactionConfig { - [key: string]: object | any; - - /** - * - * @type {string} - * @memberof QuorumTransactionConfig - */ - rawTransaction?: string; - /** - * - * @type {string | number} - * @memberof QuorumTransactionConfig - */ - from?: string | number; - /** - * - * @type {string} - * @memberof QuorumTransactionConfig - */ - to?: string; - /** - * - * @type {string | number} - * @memberof QuorumTransactionConfig - */ - value?: string | number; - /** - * - * @type {string | number} - * @memberof QuorumTransactionConfig - */ - gas?: string | number; - /** - * - * @type {string | number} - * @memberof QuorumTransactionConfig - */ - gasPrice?: string | number; - /** - * - * @type {number} - * @memberof QuorumTransactionConfig - */ - nonce?: number; - /** - * - * @type {string} - * @memberof QuorumTransactionConfig - */ - data?: string; -} -/** - * - * @export - * @interface RunTransactionRequest - */ -export interface RunTransactionRequest { - /** - * - * @type {Web3SigningCredential} - * @memberof RunTransactionRequest - */ - web3SigningCredential: Web3SigningCredential; - /** - * - * @type {QuorumTransactionConfig} - * @memberof RunTransactionRequest - */ - transactionConfig: QuorumTransactionConfig; - /** - * The amount of milliseconds to wait for a transaction receipt with thehash of the transaction(which indicates successful execution) beforegiving up and crashing. - * @type {number} - * @memberof RunTransactionRequest - */ - timeoutMs?: number; -} -/** - * - * @export - * @interface RunTransactionResponse - */ -export interface RunTransactionResponse { - /** - * - * @type {Web3TransactionReceipt} - * @memberof RunTransactionResponse - */ - transactionReceipt: Web3TransactionReceipt; -} -/** - * - * @export - * @interface SolidityContractJsonArtifact - */ -export interface SolidityContractJsonArtifact { - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - contractName: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - metadata?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - bytecode?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - deployedBytecode?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - sourceMap?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - deployedSourceMap?: string; - /** - * - * @type {string} - * @memberof SolidityContractJsonArtifact - */ - sourcePath?: string; - /** - * - * @type {{ [key: string]: object; }} - * @memberof SolidityContractJsonArtifact - */ - compiler?: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof SolidityContractJsonArtifact - */ - functionHashes?: { [key: string]: object; }; - /** - * - * @type {object} - * @memberof SolidityContractJsonArtifact - */ - gasEstimates?: object; -} -/** - * @type Web3SigningCredential - * @export - */ -export type Web3SigningCredential = Web3SigningCredentialCactusKeychainRef | Web3SigningCredentialGethKeychainPassword | Web3SigningCredentialNone | Web3SigningCredentialPrivateKeyHex; - -/** - * - * @export - * @interface Web3SigningCredentialCactusKeychainRef - */ -export interface Web3SigningCredentialCactusKeychainRef { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - type: Web3SigningCredentialType; - /** - * The ethereum account (public key) that the credential belongs to. Basically the username in the traditional terminology of authentication. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - ethAccount: string; - /** - * The key to use when looking up the the keychain entry holding the secret pointed to by the keychainEntryKey parameter. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - keychainEntryKey: string; - /** - * The keychain ID to use when looking up the the keychain plugin instance that will be used to retrieve the secret pointed to by the keychainEntryKey parameter. - * @type {string} - * @memberof Web3SigningCredentialCactusKeychainRef - */ - keychainId: string; -} -/** - * - * @export - * @interface Web3SigningCredentialGethKeychainPassword - */ -export interface Web3SigningCredentialGethKeychainPassword { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialGethKeychainPassword - */ - type: Web3SigningCredentialType; - /** - * The ethereum account (public key) that the credential belongs to. Basically the username in the traditional terminology of authentication. - * @type {string} - * @memberof Web3SigningCredentialGethKeychainPassword - */ - ethAccount: string; - /** - * A geth keychain unlock password. - * @type {string} - * @memberof Web3SigningCredentialGethKeychainPassword - */ - secret: string; -} -/** - * Using this denotes that there is no signing required because the transaction is pre-signed. - * @export - * @interface Web3SigningCredentialNone - */ -export interface Web3SigningCredentialNone { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialNone - */ - type: Web3SigningCredentialType; -} -/** - * - * @export - * @interface Web3SigningCredentialPrivateKeyHex - */ -export interface Web3SigningCredentialPrivateKeyHex { - /** - * - * @type {Web3SigningCredentialType} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - type: Web3SigningCredentialType; - /** - * The ethereum account (public key) that the credential belongs to. Basically the username in the traditional terminology of authentication. - * @type {string} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - ethAccount: string; - /** - * The HEX encoded private key of an eth account. - * @type {string} - * @memberof Web3SigningCredentialPrivateKeyHex - */ - secret: string; -} -/** - * - * @export - * @enum {string} - */ -export enum Web3SigningCredentialType { - CACTUSKEYCHAINREF = 'CACTUS_KEYCHAIN_REF', - GETHKEYCHAINPASSWORD = 'GETH_KEYCHAIN_PASSWORD', - PRIVATEKEYHEX = 'PRIVATE_KEY_HEX', - NONE = 'NONE' -} - -/** - * - * @export - * @interface Web3TransactionReceipt - */ -export interface Web3TransactionReceipt { - [key: string]: object | any; - - /** - * - * @type {boolean} - * @memberof Web3TransactionReceipt - */ - status: boolean; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - transactionHash: string; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - transactionIndex: number; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - blockHash: string; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - blockNumber: number; - /** - * - * @type {number} - * @memberof Web3TransactionReceipt - */ - gasUsed: number; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - contractAddress?: string | null; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - from: string; - /** - * - * @type {string} - * @memberof Web3TransactionReceipt - */ - to: string; -} - -/** - * DefaultApi - axios parameter creator - * @export - */ -export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumDeployContractSolidityBytecode: async (deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-quorum/deploy-contract-solidity-bytecode`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof deployContractSolidityBytecodeV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(deployContractSolidityBytecodeV1Request !== undefined ? deployContractSolidityBytecodeV1Request : {}) : (deployContractSolidityBytecodeV1Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Invokeds a contract on a quorum ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumInvokeContract: async (invokeContractV1Request?: InvokeContractV1Request, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-quorum/invoke-contract`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof invokeContractV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(invokeContractV1Request !== undefined ? invokeContractV1Request : {}) : (invokeContractV1Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Executes a transaction on a quorum ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumRunTransaction: async (runTransactionRequest?: RunTransactionRequest, options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-quorum/run-transaction`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof runTransactionRequest !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(runTransactionRequest !== undefined ? runTransactionRequest : {}) : (runTransactionRequest || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV2QuorumInvokeContract: async (invokeContractV2Request?: InvokeContractV2Request, options: any = {}): Promise => { - const localVarPath = `/api/v2/plugins/@hyperledger/cactus-plugin-ledger-connector-quorum/invoke-contract`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - const needsSerialization = (typeof invokeContractV2Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; - localVarRequestOptions.data = needsSerialization ? JSON.stringify(invokeContractV2Request !== undefined ? invokeContractV2Request : {}) : (invokeContractV2Request || ""); - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1: async (options: any = {}): Promise => { - const localVarPath = `/api/v1/plugins/@hyperledger/cactus-plugin-ledger-connector-quorum/get-prometheus-exporter-metrics`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.query) { - query.set(key, options.query[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DefaultApi - functional programming interface - * @export - */ -export const DefaultApiFp = function(configuration?: Configuration) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Invokeds a contract on a quorum ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1QuorumInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1QuorumInvokeContract(invokeContractV1Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Executes a transaction on a quorum ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV1QuorumRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV1QuorumRunTransaction(runTransactionRequest, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiV2QuorumInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).apiV2QuorumInvokeContract(invokeContractV2Request, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getPrometheusExporterMetricsV1(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).getPrometheusExporterMetricsV1(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * DefaultApi - factory interface - * @export - */ -export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Invokeds a contract on a quorum ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1QuorumInvokeContract(invokeContractV1Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Executes a transaction on a quorum ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV1QuorumRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV1QuorumRunTransaction(runTransactionRequest, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiV2QuorumInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any): AxiosPromise { - return DefaultApiFp(configuration).apiV2QuorumInvokeContract(invokeContractV2Request, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getPrometheusExporterMetricsV1(options?: any): AxiosPromise { - return DefaultApiFp(configuration).getPrometheusExporterMetricsV1(options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * DefaultApi - object-oriented interface - * @export - * @class DefaultApi - * @extends {BaseAPI} - */ -export class DefaultApi extends BaseAPI { - /** - * - * @summary Deploys the bytecode of a Solidity contract. - * @param {DeployContractSolidityBytecodeV1Request} [deployContractSolidityBytecodeV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request?: DeployContractSolidityBytecodeV1Request, options?: any) { - return DefaultApiFp(this.configuration).apiV1QuorumDeployContractSolidityBytecode(deployContractSolidityBytecodeV1Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Invokeds a contract on a quorum ledger - * @param {InvokeContractV1Request} [invokeContractV1Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1QuorumInvokeContract(invokeContractV1Request?: InvokeContractV1Request, options?: any) { - return DefaultApiFp(this.configuration).apiV1QuorumInvokeContract(invokeContractV1Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Executes a transaction on a quorum ledger - * @param {RunTransactionRequest} [runTransactionRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV1QuorumRunTransaction(runTransactionRequest?: RunTransactionRequest, options?: any) { - return DefaultApiFp(this.configuration).apiV1QuorumRunTransaction(runTransactionRequest, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Invokeds a contract on a besu ledger - * @param {InvokeContractV2Request} [invokeContractV2Request] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public apiV2QuorumInvokeContract(invokeContractV2Request?: InvokeContractV2Request, options?: any) { - return DefaultApiFp(this.configuration).apiV2QuorumInvokeContract(invokeContractV2Request, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Get the Prometheus Metrics - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApi - */ - public getPrometheusExporterMetricsV1(options?: any) { - return DefaultApiFp(this.configuration).getPrometheusExporterMetricsV1(options).then((request) => request(this.axios, this.basePath)); - } -} - - diff --git a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/base.ts b/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/base.ts deleted file mode 100644 index 678a8be1c43..00000000000 --- a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/base.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Quorum - * Can perform basic tasks on a Quorum ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance } from 'axios'; - -export const BASE_PATH = "https://www.cactus.stream".replace(/\/+$/, ""); - -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -/** - * - * @export - * @interface RequestArgs - */ -export interface RequestArgs { - url: string; - options: any; -} - -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - protected configuration: Configuration | undefined; - - constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -}; - -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} diff --git a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/configuration.ts b/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/configuration.ts deleted file mode 100644 index 5011b47ca1f..00000000000 --- a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/configuration.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Quorum - * Can perform basic tasks on a Quorum ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export interface ConfigurationParameters { - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - username?: string; - password?: string; - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - basePath?: string; - baseOptions?: any; -} - -export class Configuration { - /** - * parameter for apiKey security - * @param name security name - * @memberof Configuration - */ - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - username?: string; - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - password?: string; - /** - * parameter for oauth2 security - * @param name security name - * @param scopes oauth2 scope - * @memberof Configuration - */ - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - /** - * override base path - * - * @type {string} - * @memberof Configuration - */ - basePath?: string; - /** - * base options for axios calls - * - * @type {any} - * @memberof Configuration - */ - baseOptions?: any; - - constructor(param: ConfigurationParameters = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - } -} diff --git a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/index.ts b/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/index.ts deleted file mode 100644 index 7e2d0b3e32a..00000000000 --- a/packages/cactus-plugin-ledger-connector-quorum/src/main/typescript/generated/openapi/typescript-axios/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Hyperledger Cactus Plugin - Connector Quorum - * Can perform basic tasks on a Quorum ledger - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export * from "./api"; -export * from "./configuration"; - diff --git a/packages/cactus-test-plugin-ledger-connector-besu/package-lock.json b/packages/cactus-test-plugin-ledger-connector-besu/package-lock.json index 8f2c86b4af5..24f9bb29e62 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/package-lock.json +++ b/packages/cactus-test-plugin-ledger-connector-besu/package-lock.json @@ -384,14 +384,6 @@ "regenerator-runtime": "^0.11.0" } }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, "base-x": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", @@ -1382,24 +1374,6 @@ "unpipe": "~1.0.0" } }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",